What were two major differences between third-generation programming languages and previous generations?
Front
primitives were both higher level and machine independent
Back
Why were these translators called compilers?
Front
had to compile several machine instructions into short sequences to simulate the activity requested by a single high-level primitive
Back
What does FORTRAN stand for?
Front
FORmula TRANslator
Back
What does COBOL stand for?
Front
COmmon Business Oriented Language
Back
How do primitives used in assembly language compare with those used in machine language?
Front
essentially the same with only difference being the syntax used to represent them
Back
How is a program constructed under the functional paradigm?
Front
by connecting smaller predefined program units so that each unit's outputs are used as another unit's inputs in such a way that the desired overall input-to-output relationship is obtained
Back
What were created once a given mnemonic system was established?
Front
programs called assemblers
Back
What is the only way to transport a program written in assembly language to another computer design?
Front
rewrite it to conform to the new computer's register configuration and instruction set
Back
What was COBOL developed for?
Front
business applications
Back
What has the declarative approach been used for many years to do?
Front
to simulate a system in order to test hypotheses or to obtain predictions
Back
What does the term assembly language refer to?
Front
a mnemonic system for representing programs
Back
Why have informal standards evolved in some cases?
Front
because of the popularity of a certain dialect of a language and the desire of other compiler writers to produce compatible products
Back
What would be a more realistic term than "programming paradigms" for the different branches of programming languages?
Front
software development paradigms
Back
What is an example of an instruction in a mnemonic system to move the contents of register 5 to register 6?
Front
MOV R5, R6
Back
Why is "software development paradigm" a more realistic term than "programming paradigm"?
Front
the paradigms represent fundamentally different approaches to building solutions to problems and therefore affect the entire software devleopment process
Back
What does it mean to say that the primitives of third-generation programming languages were higher level?
Front
they expressed instructions in larger increments
Back
What were third-generation programming languages more conducive to?
Front
software development
Back
What are program variables?
Front
descriptive names to refer to memory cells at discrete locations
Back
What basic methodology does a declarative paradigm use?
Front
a preestablished general-purpose problem-solving algorithm
Back
What did translators theoretically allow?
Front
use of a program written in a third-generation language on any machine simply by applying the appropriate compiler
Back
How does the imperative paradigm define the programming process?
Front
as the development of a sequence of commands that, when followed, manipulate the data to produce the desired result
Back
How is the programming process defined under the functional paradigm?
Front
building functions as nested complexes of simpler functions
Back
What has the reality of compiler machine independence necessitated?
Front
the implementation of at least minor modifications to a program to move it from one machine to another
Back
What is another term for the imperative paradigm?
Front
the procedural paradigm
Back
What did assemblers save programmers from having to do?
Front
from developing a program directly in machine language
Back
How are high-level primitives dealt with once the design is complete?
Front
can be translated to lower-level concepts relating to the details of implementation
Back
How is a program viewed within the functional paradigm?
Front
as an entity that accepts inputs and produces outputs
Back
What is another term for program variable?
Front
identifier
Back
How does an interpreter run a program differently from a compiler?
Front
rather than producing a machine-language copy of a program that would be executed later, an interpreter actually executes a program from its high-level form
Back
What was the job of assemblers?
Front
to convert mnemonic expressions into machine language instructions
Back
What are programming paradigms?
Front
alternative approaches to the programming process that have developed along different paths according to different sets of problem-solving priorities and methods
Back
What is another disadvantage of an assembly language for how it forces the programmer to think?
Front
a programmer, though not required to code instructions in numeric form, is still forced to think in terms of the small, incremental steps of the machine's language (doesn't allow for abstraction to larger scales of design)
Back
What is a translator?
Front
a program that translated programs expressed in high-level primitives into machine-language programs
Back
What are language extensions?
Front
features often provided by compiler designers that are not part of the standard version of the language
Back
What was FORTRAN devleoped for?
Front
scientific and engineering applications
Back
What is the ideal adaptation of the design process?
Front
the design process is better suited to the use of high-level primitives, each representing a concept associated with a major feature of the product
Back
How did researchers simplify the (machine language) programming process in the 1940s?
Front
by developing notational systems by which instructions could be represented in mnemonic rather than numeric form
Back
What is the underlying algorithm in the simulation of systems?
Front
the process of simulating the passage of time by repeatedly recomputing values of parameters based on the previously computed values
Back
What does the term "second-generation languages" refer to?
Front
assembly languages
Back
What were the two best-known examples of third-generation programming languages?
Front
FORTRAN and COBOL
Back
What does the declarative paradigm emphasize in contrast to the imperative paradigm?
Front
the problem to be solved rather than an algorithm to be followed
Back
How is standardization of languages maintained?
Front
the American National Standards Institute and the International Organization for Standardization have adopted and published standards for many of the popular languages
Back
What is the reality of the theoretical machine independence of compilers?
Front
when a compiler is designed, particular characteristics of the underlying machine are sometimes reflected as conditions on the language being translated
Back
What is the result of the fact that assembly language primitives are the same as machine language primitives?
Front
a program written in an assembly language is inherently machine dependent
Back
Who developed COBOL?
Front
the U.S. Navy
Back
How do interpreters differ from compilers?
Front
execute instructions as they are translated instead of recording the translated version for future use
Back
What is an example of how differences in process handling from machine to machine have resulted in different dialects of a language?
Front
the different ways in which machines handle I/O operations have historically caused the "same" language to have different characteristics, or dialects, on different machines
Back
What emerged as an alternative to compilers for implementing third-generation languages?
Front
interpreters
Back
What does it mean to say a language is machine dependent?
Front
the instructions within the program are expressed in terms of a particular machine's attributes (instructions not portable)
Back
What does the term "first-generation languages" refer to?
Front
machine languages
Back
Section 2
(50 cards)
What does the term "instance" (of a class) refer to in the object-oriented paradigm?
Front
an object that is based on a particular class
Back
What are modern languages designed with in order to avoid the complexities that may arise from relying on goto statements?
Front
control statements that allow an entire branching pattern to be expressed within a single lexical structure
Back
What is a class in the object-oriented paradigm?
Front
a description of the object's properties
Back
What complications can the use of literals result in?
Front
they can complicate the task of modifying the program should it become necessary (if the value in a literal changes, each reference to the value throughout the program must be located and changed)
Back
What does the assignment statement do?
Front
requests that the value of an expression be assigned to a variable (or more precisely, stored in the memory area identified by the variable)
Back
What does structured programming consist of?
Front
an organized design methodology combined with the appropriate use of the language's control statements
Back
What are data types that have not yet become widespread primitives?
Front
images, audio, video, and hypertext
Back
What is data structure?
Front
the conceptual shape or arrangement of data, with each type of data having a structure typical for that type
Back
What are visual programming languages also called?
Front
block-based programming languages
Back
What is a local variable?
Front
a variable that can be referenced only within that function
Back
What does the goto statement provide?
Front
a means of directing the execution sequence to another location that has been labeled for this purpose by a name or number (i.e., a direct application of the machine-level JUMP instruction)
Back
How can the complications resulting from the use of literals be made even worse?
Front
if the value contained in a literal is also used in reference to other quantities in a program, there is no way to know which occurrences to change and which to leave alone
Back
What is an example of an aggregate type and the data it might contain?
Front
a block of data referring to an employee might consist of an entry called Name of type character, an entry called Age of type integer, and an entry called SkillRating of type float
Back
What is the implication of the way objects are constructed out of methods?
Front
most object-oriented programming languages contain many of the features found in imperative languages
Back
What value declaration can be used in place of a literal to solve potential problems created by use of literals?
Front
constant
Back
What is the simplest control statement?
Front
the goto statement
Back
What is a constant?
Front
a descriptive name assigned to specific, nonchangeable values
Back
What do many programming languages require to establish an array in a program?
Front
that the declaration statement declaring the name of the array also specify the length of each dimension of the array
Back
What term for functions is preferred in object-oriented languages when programmers specify how objects should respond to various stimuli?
Front
method
Back
What options does a programmer have for referring to an aggregate type once an aggregate has been declared?
Front
a programmer can use the structure name to refer to the entire aggregate or can reference individual fields within the aggregate by means of the structure name followed by a period and the field name
Back
What is control transferred during the execution of a function?
Front
control is transferred to the function at the time its services are required and then returned to the original program unit after the function has finished
Back
How does structured programming achieve its goal?
Front
by restricting the use of those features that have historically led to sloppy programming while encouraging the use of better-designed features
Back
What is the most basic kind of imperative statement?
Front
the assignment statement
Back
What are common primitive data types (or "primitives")?
Front
integer, float, character, and Boolean
Back
What does the term "calling unit" usually refer to?
Front
a program unit that requests the execution of a function
Back
What does a function's header do?
Front
identifies the name of the function
Back
What is a literal?
Front
the explicit appearance in a program of a value
Back
What can excessive use of goto statements result in?
Front
needlessly convoluted code
Back
How are literals consisting of text distinguished from other program components?
Front
they are delineated with single or double quotation marks
Back
What are some examples of block-based languages used in education?
Front
Alice, Scratch, StarLogo, and App Inventor
Back
What does the term "overloading" refer to?
Front
the use of a single symbol to indicate more than one operation in different contexts
Back
What does a control statement do?
Front
alters the execution sequence of the program
Back
How is a software system viewed in the object-oriented paradigm?
Front
as a collection of units, called objects, each of which is capable of performing the actions that are immediately related to itself as well as requesting actions of other objects
Back
What is the array?
Front
a block of elements of the same type such as a one-dimensional list, a two-dimensional table with rows and columns, or tables with higher dimensions
Back
What is one reason why the use of literals is not considered good programming practice?
Front
they can mask the meaning of statements in which they appear
Back
What follows the header in a function?
Front
statements that define the function's details
Back
What are visual programming languages?
Front
an alternative to traditional text-based programming environments that allow the developer to manipulate graphical blocks on the screen to create programs
Back
What are other terms for aggregate type?
Front
structure, record, or heterogeneous array
Back
What is the scope of a variable?
Front
the portion of a program in which a variable can be referenced
Back
What is a function?
Front
a set of instructions for performing a task that can be used as an abstract tool by other program units
Back
What are functions called in the object-oriented vernacular?
Front
methods
Back
What are indices?
Front
integer values that identify an individual element in an array by specifying the row, column, and so on, desired
Back
What does APL stand for?
Front
A Programming Langauge
Back
What is the nature of the methods within an object?
Front
they are essentially small imperative program units
Back
How is the entire system constructed in the object-oriented paradigm?
Front
as a collection of objects, each of which knows how to respond to the events related to it
Back
What is an aggregate type?
Front
a block of data in which different elements can have different types
Back
What do the terms "calling" or "invoking" the function refer to?
Front
the process of transferring control to a function
Back
primitive data types
Front
the data types that are included in a programming language
Back
What does structured programming encourage?
Front
allowing algorithms to be expressed in a readable form while also assisting the programmer in obtaining such readability
Back
What are global variables?
Front
variables whose scopes are not restricted to a particular part of a program
Back
Section 3
(50 cards)
What are syntax diagrams?
Front
pictorial representations of a language's grammatical structure
Back
What does the term "just-in-time compilation" refer to?
Front
the quick translation of of software into universal machine language just prior to execution
Back
How is "ambiguous grammar" defined?
Front
a grammar that allows two distinct parse trees for one string
Back
What is an object program?
Front
the translated version of a program
Back
What does passing a parameter by value entail?
Front
a duplicate of the data represented by the actual parameters is produced and given to the function
Back
What is a more efficient way than passing by value of dealing with parameters when they contain large blocks of data?
Front
passing by reference
Back
What three activities are performed by corresponding units in the translator?
Front
lexical analysis, parsing, and code generation
Back
What does the term "actual parameters" refer to?
Front
the precise meanings assigned to the formal parameters when the function is applied
Back
What does a type cast do?
Front
notifies the compiler that the programmer is aware that a type conversion will be applied
Back
What does a parse tree represent?
Front
the parser's interpretation of the program's grammatical composition
Back
What were fixed-format languages?
Front
early programming languages that insisted that each program statement be positioned in a particular manner on the printed page
Back
What is another term for a single entity as recognized by a lexical analyzer?
Front
a token
Back
What does "strongly typed" mean?
Front
all activities requested by a program must involve data of agreeable types
Back
What does passing by reference allow?
Front
allows the function to modify the data residing in the calling environment
Back
Under what condition will some languages, such as Java, allow coercion?
Front
as long as it is a type promotion
Back
Why is coercion frowned upon by many language designers?
Front
it can alter the value of a data item, resulting in subtle program bugs
Back
What is parsing?
Front
the process of recognizing the grammatical structure of a program
Back
What is a source program?
Front
the program in its original form
Back
In what cases is passing parameters by value inefficient?
Front
when the parameters represent large blocks of data
Back
What is one way of expressing the rules of grammar?
Front
syntax diagrams
Back
How does a lexical analyzer process tokens?
Front
encodes each token with its classification and hands them to the parser
Back
What relationship to coercion do most modern languages have?
Front
most modern languages are strongly typed and thus do not allow coercion
Back
What is code optimization?
Front
implementation of shortcuts in the execution of a program by recognizing components within a program that have already been compiled
Back
What is lexical analysis?
Front
the process of recognizing which strings of symbols from the source program represent a single entity
Back
What are nonterminals?
Front
terms in a syntax diagram that require further description
Back
What is a type promotion?
Front
coercion that involves converting a low precision value to a higher precision value
Back
What are free-format languages?
Front
languages in which the positioning of statements is not critical
Back
What are parameters?
Front
generic terms within functions that are replaced by specific instantiations when the function is run
Back
What benefits does passing a parameter by value provide?
Front
protects the data in the calling unit from being mistakenly altered by a poorly designed function
Back
What is code generation?
Front
the process of constructing the machine-language instructions to implement the statements recognized by the parser
Back
What are constructors?
Front
special methods within a given class that handle specific initialization needs and are executed automatically when an object is constructed from the class
Back
What is a grammar?
Front
collective term for a set of rules that define the syntax of the programming language
Back
What are methods in the object-oriented paradigm?
Front
the functions within an object
Back
What is coercion?
Front
implicit conversion between types
Back
How does passing by reference work?
Front
gives the function direct access to the actual parameters by telling it the addresses of the actual parameters in the calling program unit
Back
What are universal machine languages designed for?
Front
to be quickly translatable
Back
What does the process of parsing a program consist of?
Front
constructing a parse tree for the source program
Back
What are terminals?
Front
terms in a syntax diagram that appear in ovals in the same form in which they appear in the program
Back
What is a symbol table?
Front
a table into which the parser records information being declared as it recognizes declarative statements
Back
How is Python unusual in regard to the use of spacing?
Front
it has aspects of free-format languages, but strictly requires indentation to mark structure, rather than punctuation marks like semicolons and curly braces
Back
What is universal machine language called in Java?
Front
bytecode
Back
What are methods called in the C++ vernacular?
Front
member functions
Back
What is an instance variable?
Front
a variable that resides within an object
Back
What is translation?
Front
the process of converting a program from one language to another
Back
What are event-driven systems?
Front
software systems in which functions are activated by events rather than explicit requests
Back
How are grammatical ambiguities avoided in Python?
Front
with indentation
Back
What is a parse tree?
Front
representation in pictorial form of the manner in which a particular string conforms to a set of syntax diagrams
Back
What problem was solved by Sun Microsystems and Microsoft with the design of "universal machine languages"?
Front
transferring software over the Internet for execution and, as a result, having to either suffer delays due to translation or provide a different version of the machine-language form of the software
Back
What is another term for parameters?
Front
formal parameters
Back
What is universal machine language called in C#?
Front
.NET Common Intermediate Language
Back
Section 4
(20 cards)
polymorphism
Front
the customized interpretation of a message in an object-oriented program
Back
What are inference rules?
Front
techniques used in logic and programming for deriving a consequence from a collection of statements
Back
What is a monitor?
Front
a data item augmented with the ability to control access to itself
Back
What is parallel processing or concurrent processing in a program?
Front
the simultaneous execution of multiple activations
Back
What does unification allow in a deduction system?
Front
allows general statements to be applied to specific applications
Back
What does a program in Prolog consist of?
Front
a collection of initial statements to which the underlying algorithm applies its deductive reasoning
Back
What does the term "public" refer to?
Front
features that are accessible from outside the object
Back
What is a logic programming language?
Front
a declarative programming language whose underlying problem-solving algorithm is based on repeated resolution
Back
What is resolution?
Front
a deductive-reasoning principle according to which on the basis of two statements, a third statement can be concluded
Back
What is inheritance in the object-oriented paradigm?
Front
ability of one class to encompass the properties of another
Back
What does the term "private" refer to?
Front
features that are encapsulated
Back
What is an example of a logic programming language?
Front
Prolog
Back
What does it mean to say that certain features of an object are encapsulated?
Front
only the object itself is able to access them
Back
What is a resolvent?
Front
the third statement formed logically on the basis of two previous statements
Back
What is an inconsistent collection of statements?
Front
a collection of statements that are self-contradictory (impossible that they are all true at the same time)
Back
What is the programming language name "Prolog" short for?
Front
PROgramming LOGic
Back
What kind of data is said to have mutually exclusive access?
Front
data that can be accessed by only one thread at a time
Back
What are predicates in Prolog?
Front
the components from which the initial statements are constructed
Back
What is unification?
Front
the process of assigning values to variables so that resolution can be performed
Back
encapsulation
Front
restricting access to an object's internal properties