To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Programming languages are the medium of expression in the art of computer programming. An ideal programming language will make it easy for programmers to write programs succinctly and clearly. Because programs are meant to be understood, modified, and maintained over their lifetime, a good programming language will help others read programs and understand how they work. Software design and construction are complex tasks. Many software systems consist of interacting parts. These parts, or software components, may interact in complicated ways. To manage complexity, the interfaces and communication between components must be designed carefully. A good language for large-scale programming will help programmers manage the interaction among software components effectively. In evaluating programming languages, we must consider the tasks of designing, implementing, testing, and maintaining software, asking how well each language supports each part of the software life cycle.
There are many difficult trade-offs in programming language design. Some language features make it easy for us to write programs quickly, but may make it harder for us to design testing tools or methods. Some language constructs make it easier for a compiler to optimize programs, but may make programming cumbersome. Because different computing environments and applications require different program characteristics, different programming language designers have chosen different trade-offs. In fact, virtually all successful programming languages were originally designed for one specific use. This is not to say that each language is good for only one purpose.
The logic programming paradigm has its roots in automated theorem proving from which it took the notion of a deduction. What is new is that in the process of deduction some values are computed. The creation of this programming paradigm is the outcome of a long history that for most of its course ran within logic and only later inside computer science. Logic programming is based on the syntax of first-order logic, which was originally proposed in the second half of nineteenth century by Gottlob Frege and later modified to the currently used form by Giuseppe Peano and Bertrand Russell.
In the 1930s, Kurt Gödel and Jacques Herbrand studied the notion of computability based on derivations. These works can be viewed as the origin of the “computation as deduction” paradigm. Additionally, Herbrand discussed in his doctoral thesis a set of rules for manipulating algebraic equations on terms that can be viewed now as a sketch of a unification algorithm. Some 30 years later, in 1965, Alan Robinson published his fundamental paper (Robinson 1965) that lies at the foundation of the field of automated deduction. In this paper, he introduced the resolution principle, the notion of unification, and a unification algorithm. Using the resolution method, one can prove theorems of first-order logic, but another step was needed to see how one could compute within this framework.
The Algol-like programming languages evolved in parallel with the Lisp family of languages, beginning with Algol 58 and Algol 60 in the late 1950s. The most prominent Algol-like programming languages are Pascal and C, although C differs from most of the Algol-like languages in some significant ways.
In this chapter, we look at some of the historically important languages from the Algol family, including Algol 60, Pascal, and C. Because many of the central features of the Algol family are used in ML, we then use the ML programming language to discuss some important concepts in more detail. The ML section of this chapter is also a useful reference for later chapters that use ML examples to illustrate concepts that are not found in C.
There are many Algol-related languages that we do not have time to cover, such as Algol 58, Algol W, Euclid, EL1, Mesa, Modula-2, Oberon, and Modula-3. We will discuss Modula and modules in Chapter 9.
THE ALGOL FAMILY OF PROGRAMMING LANGUAGES
A number of important language ideas were developed in the Algol family, which began with work on Algol 58 and Algol 60 in the late 1950s. The Algol family developed in parallel with Lisp languages and led to the late development of ML and Modula.
The main characteristics of the Algol family are the familiar colon-separated sequence of statements used in most languages today, block structure, functions and procedures, and static typing.
We discuss the asymptotic behavior of time-inhomogeneous Metropolis chains for solving constrained sampling and optimization problems. In addition to the usual inverse temperature schedule (βn)n∈[hollow N]*, the type of Markov processes under consideration is controlled by a divergent sequence (θn)n∈[hollow N]* of parameters acting as Lagrange multipliers. The associated transition probability matrices (Pβn,θn)n∈[hollow N]* are defined by Pβ,θ = q(x, y)exp(−β(Wθ(y) − Wθ(x))+) for all pairs (x, y) of distinct elements of a finite set Ω, where q is an irreducible and reversible Markov kernel and the energy function Wθ is of the form Wθ = U + θV for some functions U,V : Ω → [hollow R]. Our approach, which is based on a comparison of the distribution of the chain at time n with the invariant measure of Pβn,θn, requires the computation of an upper bound for the second largest eigenvalue in absolute value of Pβn,θn. We extend the geometric bounds derived by Ingrassia and we give new sufficient conditions on the control sequences for the algorithm to simulate a Gibbs distribution with energy U on the constrained set [Ω with tilde above] = {x ∈ Ω : V(x) = minz∈ΩV(z)} and to minimize U over [Ω with tilde above].
We propose a particular class of transition probability matrices for discrete-time Markov chains with a closed form to compute the stationary distribution. The stochastic monotonicity properties of this class are established. We give algorithms to construct monotone, bounding matrices belonging to the proposed class for the variability orders. The accuracy of bounds with respect to the underlying matrix structure is discussed through an example.
We consider the optimal control of two parallel servers in a two-stage tandem queuing system with two flexible servers. New jobs arrive at station 1, after which a series of two operations must be performed before they leave the system. Holding costs are incurred at rate h1 per unit time for each job at station 1 and at rate h2 per unit time for each job at station 2.
The system is considered under two scenarios; the collaborative case and the noncollaborative case. In the prior, the servers can collaborate to work on the same job, whereas in the latter, each server can work on a unique job although they can work on separate jobs at the same station. We provide simple conditions under which it is optimal to allocate both servers to station 1 or 2 in the collaborative case. In the noncollaborative case, we show that the same condition as in the collaborative case guarantees the existence of an optimal policy that is exhaustive at station 1. However, the condition for exhaustive service at station 2 to be optimal does not carry over. This case is examined via a numerical study.
We consider a modulated fluid system with a finite state-space Markov chain Jt as modulating process and general state-dependent net input rates. We derive differential equations for the transient and the stationary distribution of (Wt, Jt), where Wt is the content process, and the corresponding Laplace transforms with respect to time. Moreover, we study the level hitting times of Wt. Our results lead to explicit formulas in the case of two modulating states.
In this article, we establish stochastic comparisons between normalized spacings of generalized order statistics. These comparisons allow us to extend and unify some results obtained by other authors for ordinary order statistics and record values. Furthermore, we can compare spacings of different models (i.e., between ordinary order statistics and sequential order statistics, record values and Pfeifer's record values, and so forth).
Maymin proved that for binary systems, the path-cut lower bound is sharper than the minimax lower bound for highly reliable components, which was originally conjectured by Barlow and Proschan. In this note, an example is constructed to illustrate that this, in general, is not the case for multistate systems. However, an affirmative result is obtained under mild conditions we imposed. Examples are given to illustrate the applications of our results.
Consider a finite-capacity telecommunications link to which connection requests arrive in a Poisson process. Each connection carried on the link earns a certain amount of revenue for the link's manager. Now, assume that the manager is offered the opportunity to buy or sell a unit of the link's allocated capacity. Assuming that the manager has a knowledge of the current number of connections on the link, we demonstrate a method of calculating the buying and selling prices.
We study an M/M/∞ queuing system in which each arrival has a random urgency and is admitted if and only if it is more urgent than all individuals currently receiving service. The system represents, for example, a less-than-magnanimous emergency facility. For this system, and also for a closely related “Parody,” we study the busy period distribution and, to a lesser extent, occupancy. Both exact and heavy traffic results are given.
Given a graph G on n vertices with average degree d, form a random subgraph Gp by choosing each edge of G independently with probability p. Strengthening a classical result of Margulis we prove that, if the edge connectivity k(G) satisfies k(G) [Gt] d/log n, then the connectivity threshold in Gp is sharp. This result is asymptotically tight.
We study a model motivated by the minesweeper game. In this model one starts with the percolation of mines on the lattice ℤd, and then tries to find an infinite path of mine-free sites. At every recovery of a free site, the player is given some information on the sites adjacent to the current site. We compare the parameter values for which there exists a strategy such that the process survives to the critical parameter of ordinary percolation. We then derive improved bounds for these values for the same process, when the player has some complexity restrictions in computing his moves. Finally, we discuss some monotonicity issues which arise naturally for this model.
This paper introduces a split-and-merge transformation of interval partitions which combines some features of one model studied by Gnedin and Kerov [12, 11] and another studied by Tsilevich [30, 31] and Mayer-Wolf, Zeitouni and Zerner [21]. The invariance under this split-and-merge transformation of the interval partition generated by a suitable Poisson process yields a simple proof of the recent result of [21] that a Poisson–Dirichlet distribution is invariant for a closely related fragmentation–coagulation process. Uniqueness and convergence to the invariant measure are established for the split-and-merge transformation of interval partitions, but the corresponding problems for the fragmentation–coagulation process remain open.
We present improved lower and upper bounds for the time constant of first-passage percolation on the square lattice. For the case of lower bounds, a new method, using the idea of a transition matrix, has been used. Numerical results for the exponential and uniform distributions are presented. A simulation study is included, which results in new estimates and improved upper confidence limits for the time constants.
For two stochastically dependent random variables X and Y taking values in {0,…, m−1}, we study the distribution of the random residue U = XY mod m. Our main result is an upper bound for the distance Δm = supx∈[0,1] [mid ] P(U/m [les ] x)−x[mid ]. For independent and uniformly distributed X and Y, the exact distribution of U is derived and shown to be stochastically smaller than the uniform distribution on {0,…, m−1}. Moreover, in this case Δm is given explicitly.
Let q be an integer with q [ges ] 2. We give a new proof of a result of Erdös and Turán determining the proportion of elements of the finite symmetric group Sn having no cycle of length a multiple of q. We then extend our methods to the more difficult case of obtaining the proportion of such elements in the finite alternating group An. In both cases, we derive an asymptotic formula with error term for the above mentioned proportion, which contains an unexpected occurrence of the Gamma-function.
We apply these results to estimate the proportion of elements of order 2f in Sn, and of order 3f in An and Sn, where gcd(2, f) = 1, and gcd(3, f) = 1, respectively, and log f is polylogarithmic in n. We also give estimates for the probability that the fth power of such elements is a transposition or a 3-cycle, respectively. An algorithmic application of these results to computing in An or Sn, given as a black-box group with an order oracle, is discussed.
We consider k-uniform set systems over a universe of size n such that the size of each pairwise intersection of sets lies in one of s residue classes mod q, but k does not lie in any of these s classes. A celebrated theorem of Frankl and Wilson [8] states that any such set system has size at most (ns) when q is prime. In a remarkable recent paper, Grolmusz [9] constructed set systems of superpolynomial size Ω(exp(c log2n/log log n)) when q = 6. We give a new, simpler construction achieving a slightly improved bound. Our construction combines a technique of Frankl [6] of ‘applying polynomials to set systems’ with Grolmusz's idea of employing polynomials introduced by Barrington, Beigel and Rudich [5]. We also extend Frankl's original argument to arbitrary prime-power moduli: for any ε > 0, we construct systems of size ns+g(s), where g(s) = Ω(s1−ε). Our work overlaps with a very recent technical report by Grolmusz [10].