AI Training
AI Training
https://www.researchgate.net/publication/265315899
CITATIONS READS
0 224
1 author:
Cheryl E. Praeger
The University of Western Australia
SEE PROFILE
All content following this page was uploaded by Cheryl E. Praeger on 14 February
2015.
217
Math matters
Cheryl E. Praeger
You who glance at this column may care [is] an automatic expectation by students
about Mathematics as passionately as I do. that mathematical thinking will play a
key
You may feel that the importance of Math- role in their understanding, and problem-
ematics education is self-evident, for both solving in every part of their lives”1.
individuals and society. On the other hand Why did my perceptive and well-
you may also have experienced conversa- educated friend have such a different
under-
tions such as one I had with a friend this standing from me of the role of
Mathemat-
week. On telling her that I intended to write ics? Is there a Mathematics
Profession? If
about the Profession of Mathematics, she so, what is it like? If not, and if we
want
responded that she didn’t think that Math- there to be one, what must we do to
achieve
ematics was a profession. To be a profes- this?
sion, she said, there had to be a range of Let us assume for the moment that there
careers available, and there were none listed is a Mathematics Profession and that
we are
for Mathematics in careers material that her members of it. What are our
perceptions of
high school-aged son had brought home to the Profession? Who are the members and
show his parents. As a student, she contin- where do they work? What do they need
ued, she knew that she had strong problem- professionally, and in particular, what
do
solving skills, and good logical and analyt- they need from a professional
association?
ical thinking. However, based on her (neg-
ative) experience in studying calculus, she Purpose of the Profession
had decided to build on her strengths and The two hallmarks of Mathematics are its
not proceed with Mathematics. power and its beauty. “The high technol-
The skills my friend chose in describing ogy that is so celebrated today is essen-
her strengths are close to those I would tially mathematical technology”2. More-
nominate as generic skills to be obtained over mathematical literacy is critical
for an
from a good Mathematics education. How- individual to function effectively in mod-
ever my friend had a very different view ern society. Politicians, industrial
leaders,
from me on the purpose and outcome of and educators all say they recognise this.
a Mathematics education. My view, al- To summarise, let’s say that the role of the
ready on record, is that “the most impor- Mathematics Profession is:
tant outcome from a mathematics education
• To enhance the impact of Mathematics trol of the mysterious process between the-
research for the health of our own and ory and applications” and develop “better
other disciplines, and ultimately for the structures for sharing ideas and projects
public good; and across the whole spectrum from the purest
When it comes to defining the profession, dergraduate engineering students are wel-
it is important to use the broadest possible comed into the Engineering Profession.
In
umbrella. It is especially relevant to em- addition Engineers Australia has active
pro-
brace those diverse users of Mathematics grams run by its branches, and offers
struc-
and Statistics (in fields such as Computer tured professional development programs
Science and Bioinformatics) who may not for individual members and teams.
describe their work as Mathematics. Much Efforts to provide opportunities for un-
of what they do is Mathematics by any rea- dergraduate mathematics and statistics
stu-
sonable definition. The Mathematics Pro- dents led to the inaugural AMSI Sum-
fession should be taking credit for it and mer School in Melbourne in February
2003,
welcoming those who practise it into our whose success was praised by the Federal
fold. Minister, Dr Brendan Nelson7. In addition,
6http://www.ieaust.org.au
7Garth Gaudry, Math Matters, AustMS Gazette 31 (2004), 145–146.
8http://www.statsoc.org.au/Sections/YoungStatisticians.htm
When the Australian Mathematical So- mum, and cost-effective, benefits from
ciety introduced its accreditation scheme in incorporating mathematicians on their
1994 during my term as President, it was a staff, or as consultants, to enable them
controversial decision. The scheme was con- to achieve their competitive edge; and
servative, measuring worthiness for accredi- • Government comprehends the value of
tation against performance levels of univer- investing in mathematics education for
sity academic staff. Three levels of accredi- its citizens.
tation were offered, and the Society website How are we as a profession faring in
currently lists 108 persons who have been terms of recognition? Some data indicate
accredited as Fellows (the highest level). that Mathematics is facing a crisis,
with de-
However, no lists of accredited members, or creased resources, splintering of the
disci-
accredited graduate members are given. We pline, and dissipation of mathematics
con-
have, it seems, failed to attract young math- tent in courses at all levels. In the
first
ematicians to accredited graduate member- of these columns Peter Hall10 analysed
the
ship, which is available to those who are negative impact on Mathematics and Sta-
graduates with a major in a mathematical tistics in Australian universities of
govern-
science. ment policies on research and higher edu-
9http://www.statsoc.org.au/Accreditations/AccreditedMembers.htm
10AustMS Gazette 31 (2004), 6–11. Peter called for increased government funding for
university math-
science from Australian universities to the alone choose) between the various
mathe-
number who graduate with honours is more matical career paths, not to mention
alter-
than 5:1. In past years the mathematical as- native career paths such as the
computing
sociations have largely ignored the former, or physical sciences, or engineering.
and they account for 80% of the Profes- An appropriate initiative to achieve this
sion. Unless the government sees a vigorous would involve:
Mathematics Profession that acknowledges • A joint initiative by several mathemat-
and engages all its members, we cannot ex- ical bodies14 to welcome and engage
pect it to regard Mathematics as important undergraduate mathematics students in
politically. the Mathematics Profession.
bership of the Australian Mathematical tion offered to young people by the Mathe-
Society for the duration of a student’s matics Profession.
undergraduate career13; and Australia is a talented country. It is
• To establish a Young Mathematicians also a small country, too small to waste its
section of the Society. mathematical resources. Success in building
Yitong Li,†∗ Martin Renqiang Min,‡ Dinghan Shen,† David Carlson,† Lawrence Carin†
† Duke University, Durham, NC, United States, 27708
Generating videos from text has proven to be a significant chal- plete video clip.
Recent work on video generation has
lenge for existing generative models. We tackle this problem
by training a conditional generative model to extract both static decomposed video
into a static background, a mask and
and dynamic information from text. This is manifested in a hy- moving objects
(Vondrick, Pirsiavash, and Torralba 2016;
brid framework, employing a Variational Autoencoder (VAE) Tulyakov et al. 2017).
Both of the cited works use a Gener-
and a Generative Adversarial Network (GAN). The static fea- ative Adversarial
Network (GAN) 2014, which has shown
tures, called “gist,” are used to sketch text-conditioned back- encouraging results
on sample fidelity and diversity.
ground color and object layout structure. Dynamic features However, in contrast
with these previous works on video
are considered by transforming input text into an image filter. generation, here we
conditionally synthesize the motion and
To obtain a large amount of data for training the deep-learning background features
based on side information, specifically
model, we develop a method to automatically create a matched
text-video corpus from publicly available online videos. Exper- text captions. In
the following, we call this procedure text-
imental results show that the proposed framework generates to-video generation.
Text-to-video generation requires both a
plausible and diverse short-duration smooth videos, while ac- good conditional
scheme and a good video generator. There
curately reflecting the input text information. It significantly are a number of
existing models for text-to-image generation
outperforms baseline models that directly adapt text-to-image (Reed et al. 2016;
Mansimov et al. 2016); unfortunately, sim-
generation procedures to produce videos. Performance is eval- ply replacing the
image generator by a video generator pro-
uated both visually and by adapting the inception score used vides poor performance
(e.g. severe mode collapse), which
to evaluate image generation in GANs. we detail in our experiments. These
challenges reveal that
1 Introduction
In order to solve this problem, we breakdown the gener-
Generating images from text is a well-studied topic, but gen- ation task into two
components. First, a conditional VAE
erating video clips based on text has yet to be explored as model is used to
generate the “gist” of the video from the in-
extensively. Previous work on the generative relationship put text, where the gist
is an image that gives the background
between text and a short video clip has focused on produc- color and object layout
of the desired video. The content and
ing text captioning from video (Venugopalan et al. 2015; motion of the video is
then generated by conditioning on both
Donahue et al. 2015; Pan et al. 2016; Pu et al. 2017). How- the gist and text
input. This generation procedure is designed
ever, the inverse problem of producing videos from text has to mimic how humans
create art. Specifically, artists often
more degrees of freedom, and is a challenging problem for draw a broad draft and
then fill in the detailed information. In
existing methods. A key consideration in video generation other words, the gist-
generation step extracts static “univer-
is that both the broad picture and object motion must be de- sal” features from the
text, while the video generator extracts
termined by the text input. Directly adapting text-to-image the dynamic “detailed”
information from the text.
generation methods empirically results in videos in which One approach to combining
the text and gist information
the motion is not influenced by the text. is to simply concatenate the feature
vectors from the encoded
In this work, we consider motion and background syn- text and the gist, as was
previously used in image genera-
thesis from text, which is related to video prediction. In tion (Yan et al. 2016).
This method unfortunately struggles to
video prediction, the goal is to learn a nonlinear transfor- balance the relative
strength of each feature set, due to their
mation function between given frames to predict subse- vastly different
dimensionality. Instead, our work computes a
quent frames (Vondrick and Torralba 2017) – this step is set of image filter
kernels based on the input text and applies
∗Most of this work was done when the first and third authors the generated filter
on the gist picture to get an encoded text-
were summer interns at NEC Laboratories America. gist feature vector. This combined
vector better models the
Copyright ©c 2018, Association for the Advancement of Artificial interaction
between the text and the gist than simple concate-
Intelligence (www.aaai.org). All rights reserved. nation. It is similar to the
method used in (De Brabandere
7065
et al. 2016) for video prediction and image-style transforma- layer. The input
image is convolved with its image-dependent
tion, and (Shen et al. 2017) for question answering. As we kernels to give
predicted future frames. A similar approach
demonstrate in the experiments, the text filter better captures has previously been
used to generate future frames (De Bra-
the motion information and adds detailed content to the gist. bandere et al. 2016).
For our work, however, we do not have
Our contributions are summarized as follows: (i) By view- a matching frame for most
possible text inputs. Thus, this is
ing the gist as an intermediate step, we propose an effective not feasible to feed
in a first frame.
text-to-video generation framework. (ii) We demonstrate that GAN frameworks have
been proposed for video generation
using input text to generate a filter better models dynamic without the need for a
priming image. A first attempt in
features. (iii) We propose a method to construct a training this direction was made
by separating scene and dynamic
dataset based on YouTube (www.youtube.com) videos where content (Vondrick,
Pirsiavash, and Torralba 2016). Using the
the video titles and descriptions are used as the accompany- GAN framework, a video
could be generated purely from
ing text. This allows abundant on-line video data to be used randomly sampled
noise. Recently, Tulyakov et al. (2017)
to construct robust and powerful video representations. incorporated an RNN model
for video generation into a GAN-
There is also significant work on video generation condi- ular, (Mirza and Osindero
2014) proposed a conditional
tioned on a given image. Specifically, Vukotić et al.; Chao et GAN model for text-
to-image generation. The conditional
al.; Walker et al.; Chen et al.; Xue et al. (2017; 2017; 2016; information was
given to both the generator and the discrim-
2017; 2016) propose methods to generate videos based on inator by concatenating a
feature vector to the input and
static images. In these works, it is important to distinguish the generated image.
Conditional generative models have
potential moving objects from the given image. In contrast to been extended in
several directions. Mansimov et al. (2016)
video prediction, these methods are useful for generating a va- generated images
from captions with an RNN model using
riety of potential futures, based upon the current image. Xue “attention” on the
text. Liu and Tuzel; Zhu et al. (2016;
et al. (2016) inspired our work by using a cross-convolutional 2017) proposed
conditional GAN models for either style or
7066
RNN Encoder
t: kitesurfing t: kitesurfing
v Real?
1 Video Generator Fake?
Conv
CNN Encoder CNN Decoder Gist Encoder Real Sample Video Discriminator
The most similar work to ours is from Reed et al. (2016), this is left for future
work. The text description t is given as
which is the first successful attempt to generate natural im- a sequence of words
(natural language). The index i is only
ages from text using a GAN model. In this work, pairs of data included when
necessary for clarity.
are constructed from the text features and a real or synthetic The text input was
processed with a standard text encoder,
image. The discriminator tries to detect synthetic images or which can be jointly
trained with the model. Empirically, the
the mismatch between the text and the image. A direct adap- chosen encoder is a
minor contributer to model performance.
tation unfortunately struggles to produce reasonable videos, Thus for simplicity,
we directly adopt the skip-thought vector
as detailed in our experiments. Text-to-video generation re- encoding model (Kiros
et al. 2015).
quires a stronger conditional generator than what is necessary
for text-to-image generation, due to the increased dimension- 3.1 Gist Generator
ality. Video is a 4D tensor, where each frame is a 2D image
with color information and spatiotemporal dependency. The In a short video clip,
the background is usually static with
increased dimensionality challenges the generator to extract only small motion
changes. The gist generator uses a CVAE
both static and motion information from input text. to produce the static
background from the text (see example
L [ ]
(green box), the video generator (yellow box), and the video CV AE(θg,φg;v, t) =
Eqφg (zg |v,t) log p
( θg (v|zg, t)
discriminator. The intermediate step of gist generation is de- −KL qφg (zg|v, t)||
)
p(zg) . (1)
zg ∼ N (
the model in an end-to-end fashion. μφ [η(v);ψ(t)], diag σφ [η(v);ψ(t)] . The de-
g g
The data are a collection of N videos and associated text coding network takes zg
as an input. The output of this CVAE
descriptions, {Vi, ti} for i = 1, . . . , N . Each video Vi ∈ network is called
“gist”, which is then one of the inputs to
T×C×H×W
R with frames Vi = {v1i, · · · ,vTi}, where C the video generator.
reflects the number of color bands (typically C = 1 or C = At test time, the
encoding network on the video frame is
3), and H and W are the number of pixels in the height and ignored, and only the
encoding network ψ(·) on the text is
7067
applied. This step ensures the model sketches for the text- through time to match
the video dimensionality, where the
conditioned video. In our experiments, we demonstrate that values in s(·) are from
an independent neural network with
directly creating a plausible video with diversity from text is 2D convolutional
layers. Therefore, the text-gist vector gt
critically dependent on this intermediate generation step. and the random noise
combine to create further details on the
min maxEV ∼p(V ) [D(V ; θD)] is challenging in a complex framework. Instead, a more
ro-
θG∈ΘG θD
− bust and effective way to utilize the text information is to
Ezv∼p(zv) [D(G(zv; θG); θD)] . (2) construct the motion-generating filter weights
based on the
The function D discriminates between real and synthetic text information, which is
denoted by Text2Filter. This is
video-text pairs, and the parameters θD are limited to main- shown as the orange
cube in Figure 2.
tain a maximum Lipschitz constant of the function. The gen- The Text2Filter
operation consists of only convolutional
erator G generates synthetic samples from random noise that layers, following
existing literature (Long, Shelhamer, and
attempt to confuse the discriminator. Darrell 2015). We extend the 2D fully
convolutional archi-
To this point, there is no diversity induced for the motion fg(t) = 3Dconv(ψ(t)).
(4)
in the text-gist vector, although some variation is introduced
in the sampling of the gist based on the text information. Note that “3Dconv”
represents the 3D full convolution oper-
The diversity of the motion and the detailed information is ation and ψ(·) is the
text encoder. The filter fg(t) is directly
primarily introduced by concatenating isometric Gaussian applied on the gist to
give the text-gist vector
noise nv with the text-gist vector, to form zv = [gt;nv]. The
subscript v is short for video. The random-noise vector nv gt = Encoder (2Dconv (g,
fg(t))) . (5)
gives motion diversity to the video and synthesizes detailed
information. 3.4 Objective Function, Training, and Testing
We use the scene dynamic decomposition (Vondrick, Pir- The overall objective
function is manifested by the combi-
siavash, and Torralba 2016). Given the vector zv , the output nation of LCV AE and
LGAN . Including an additional recon-
video from the generator is given by
α(·)
and m(·) are both neural networks using 3D fully convolu- L = γ1LCV AE + γ2LGAN +
γ3LRECONS , (6)
tional layers (Long, Shelhamer, and Darrell 2015). α(·) is
a mask matrix to separate the static scene from the motion. where γ1, γ2 and γ3 are
scalar weights for each loss term.
The output of s(zv) is a static background picture repeated In the experiments, γ1
= γ2 = 1 and γ3 = 10, making the
7068
Real?
When generating new videos, the video encoder before Video Generator Fake?
zg in Figure 2 is discarded, and the additive noise is drawn Real Sample Video
Discriminator
t: kitesurfing at beach
Video Discriminator
Video Generator Real?
concept to the method in Ye et al. (2015) that was used to t: kitesurfing at beach
RNN Encoder
Text Discriminator
create a large-scale video-classification dataset.
Retrieving massive numbers of videos from YouTube is (b) Baseline with pairing
information.
easy; however, automatic curation of this dataset is not as
straightforward. The data-collection process we have consid- Figure 3: Two
baselines adapted from previous work. Fig-
ered proceeds as follows. For each keyword, we first collected ure 3(a) uses the
conditional framework proposed by Von-
a set of videos together with their title, description, dura- drick, Pirsiavash,
and Torralba (2016). The model was orig-
tion and tags from YouTube. The dataset was then cleaned inally used for video
prediction conditioned on a starting
by outlier-removal techniques. Specifically, the methods of frame. The starting
frame in the model is replaced with text
(Berg, Berg, and Shih 2010) were used to get the 10 most description. Figure 3(b)
uses a discriminator performing on
frequent tags for the set of video. The quality of the selected the concatenation
of encoded video and text vectors. This is
tags is further guaranteed by matching them to the words inspired by Reed et al.
(2016).
in existing categories in ImageNet (Deng et al. 2009) and
ActionBank (Sadanand and Corso 2012). These two datasets
help ensure that the selected tags have visually detectable frames, causing
existing models to fail. Therefore, each video
objects and actions. Only videos with at least three of the se- is cut and only
qualified clips are used for the training (Von-
lected tags were included. Other requirements include (i) the drick, Pirsiavash,
and Torralba 2016). The clips were quali-
duration of the video should be within the range of 10 to 400 fied as follows. Each
video uses a sampling rate of 25 frames
seconds, (ii) the title and description should be in English, per second. SIFT key
points are extracted for each frame,
and (iii) the title should have more than four meaningful and the RANSAC algorithm
determines whether continuous
words after removing numbers and stop words. frames have enough key-point overlap
(Lowe 1999). This
Clean videos from the Kinetics Human Action Video step ensures smooth motions in
the background and objects
Dataset (Kinetics) (Kay et al. 2017) are additionally used with in the used videos.
Each video clip is limited to 32 frames,
the steps described above to further expand the dataset. The with 64× 64
resolution. Pixel values are normalized to the
Kinetic dataset contains up to one thousand videos in each range of [−1, 1],
matching the use of the tanh function in
category, but the combined visual and text quality and consis- the network output
layer.
tency is mixed. For instance, some videos have non-English
titles and others have bad video quality. In our experiments, 5.2 Models for
Comparison
we choose ten keywords as our selected categories: ‘biking To demonstrate the
effectiveness of our gist generation and
in snow’, ‘playing hockey’, ‘jogging’, ‘playing soccer ball’, conditional text
filter, we compare the proposed method to
‘playing football’, ‘kite surfing’, ‘playing golf’, ‘swimming’, several baseline
models. The scene dynamic decomposition
‘sailing’ and ‘water skiing’. Note that the selected keywords framework (Vondrick,
Pirsiavash, and Torralba 2016) is used
are related to some categories in the Kinetic dataset. Most of in all the following
baselines, which could be replaced with
the videos in the Kinetic dataset and the downloaded videos alternative frameworks.
These baseline models are as follows:
unfortunately have meaningless titles, such as a date indicat-
ing when the video was shot. After screening these videos, • Direct text to video
generation (DT2V): Concatenated
we end up with about 400 videos for each category. Using encoded text ψ(t) and
randomly sampled noise are fed into
the YouTube8M (Abu-El-Haija et al. 2016) dataset for this a video generator without
the intermediate gist generation
process is also feasible, but the Kinetic dataset has cleaner step. This also
includes a reconstruction loss L
videos than YouTube8M. RECONS
5.1 Video Preprocessing et al. 2016). The discriminator judges whether the video
Current video-generation techniques only deal with smooth and text pair are real,
synthetic, or a mismatched pair. This
dynamic changes. A sudden change of shot or fast-changing is the method in Figure
3(b). We use a linear concatenation
background introduces complex non-linearities between for the video and text
feature in the discriminator.
7069
DT2V
PT2V
GT2V
T2V
In comparison, the T2V model provides both background Figure 5: Input text with
same motion and different back-
and motion features. The intermediate gist-generation step ground information. The
input text is given as the figure
fixes the background style and structure, and the following caption.
Text2Filter step forces the synthesized motion to use the
text information. These results demonstrate the necessity of
both the gist generator and the Text2Filter components in
our model. In the following subsections, we intentionally
generate videos that do not usually happen in real world. This
is to address concerns of simply replicating videos in the
training set.
5.3 Static Features Figure 6: Left is from text input “kitesurfing on the sea”.
This section shows qualitative results of the gist generation, Right is from text
input “kitesurfing on grass”
demonstrating that the gist reflects the static and background
information from input text.
Figures 5(a) and 5(b) show sample gists of kite surfing at field, the gist shows a
green color. In contrast, when kite
two different places. When generating videos with a grass surfing on the sea, the
background changes to a light blue. A
7070
One of the limitations of our model is the capacity of well as the generated
samples from the proposed and baseline
motion generation. In Figure 6, although the background models. The classification
accuracy is given in Table 1.
color is correct, the kite-surfing motion on the grass is not We observe clear mode
collapse when using DT2V and
consistent with reality. Additional samples can be found in PT2V, explaining their
poor performance. Further, it appears
Figure 1. that directly generating video from a GAN framework fails
This figure shows that a different motion can be suc- tor. Notably, the full
proposed model (including Text2Filter)
cessfully generated with similar backgrounds. However, performs best on this metric
by a significant margin, showing
the greatest limitation of the current CNN video gener- the necessity of both the
gist generation and Text2Filter.
ator is its difficulty in keeping the object shape while Figure 8 shows the
confusion matrix when the classifier is
generating a reasonable motion. Moving to specific fea- applied to the generated
videos of our full model. Generated
tures such as human pose or skeleton generation could videos of swimming and
playing golf are easier to classify
provide improvements to this issue (Chao et al. 2017; than other categories. In
contrast, both ‘sailing’ and ‘kite
Walker et al. 2017). surfing’ are on the sea. Thus it is difficult to distinguish
A relatively simple video classifier is used, which is a ground of video from input
text. The proposed Text2Filter
five-layer neural network with 3D full convolutions (Long, helps capture dynamic
motion information from text. In the
Shelhamer, and Darrell 2015) and ReLU nonlinearities. The future, we plan to build
a more powerful video generator by
output of the network is converted to classification scores generating human pose
or skeleton features, which will fur-
through a fully connected layer followed by a soft-max layer. ther improve the
visual quality of generated human activity
7071
videos. Reed, S.; Akata, Z.; Yan, X.; Logeswaran, L.; Schiele, B.; and Lee,
H. 2016. Generative adversarial text-to-image synthesis. In ICML.
7072
CONCEPTS OF
PROGRAMMING LANGUAGES
TENTH EDITION
TENTH EDITION
ROBERT W. SEBESTA
University of Colorado at Colorado Springs
Boston Columbus Indianapolis New York San Francisco Upper Saddle River
Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto
Delhi Mexico City Sao Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo
Vice President and Editorial Director, ECS: Senior Production Project Manager:
Marilyn Lloyd
Marcia Horton Manufacturing Manager: Nick Sklitsis
This book was composed in InDesign. Basal font is Janson Text. Display font is ITC
Franklin Gothic.
Copyright © 2012, 2010, 2008, 2006, 2004 by Pearson Education, Inc., publishing as
Addison-Wesley.
All rights reserved. Manufactured in the United States of America. This publication
is protected by Copy-
right, and permission should be obtained from the publisher prior to any prohibited
reproduction, storage
in a retrieval system, or transmission in any form or by any means, electronic,
mechanical, photocopying,
recording, or likewise. To obtain permission(s) to use material from this work,
please submit a written
request to Pearson Education, Inc., Permissions Department, One Lake Street, Upper
Saddle River, New
Jersey 07458, or you may fax your request to 201-236-3290.
10 9 8 7 6 5 4 3 2 1
Chapter 12: a new section on Objective-C was added, five new fig-
ures were added
Chapter 13: a section on concurrency in functional programming
languages was added; the discussion of Ada's asynchronous message
passing was removed
Chapter 14: a section on C# event handling was added
Preface
The goals, overall structure, and approach of this tenth edition of Concepts
of Programming Languages remain the same as those of the nine ear-
lier editions. The principal goals are to introduce the main constructs
The tenth edition evolved from the ninth through several different kinds
of changes. To maintain the currency of the material, some of the discussion
of older programming languages has been removed. For example, the descrip-
tion of COBOL’s record operations was removed from Chapter 6 and that of
Fortran’s Do statement was removed from Chapter 8. Likewise, the description
of Ada’s generic subprograms was removed from Chapter 9 and the discussion
of Ada’s asynchronous message passing was removed from Chapter 13.
In some cases, material has been moved. For example, several different
discussions of constructs in functional programming languages were moved
from Chapter 15 to earlier chapters. Among these were the descriptions of the
control statements in functional programming languages to Chapter 8 and the
lists and list operations of Scheme and ML to Chapter 6. These moves indicate
a significant shift in the philosophy of the book—in a sense, the mainstreaming
of some of the constructs of functional programming languages. In previous
editions, all discussions of functional programming language constructs were
segregated in Chapter 15.
Chapters 11, 12, and 15 were substantially revised, with five figures being
added to Chapter 12.
vi
Preface vii
The Vision
This book describes the fundamental concepts of programming languages by
discussing the design issues of the various language constructs, examining the
design choices for these constructs in some of the most common languages,
and critically comparing design alternatives.