Looks like no one added any tags here yet for you.
Describe Prolog (5)
based on formal logic
non-procedural
inefficient
few application areas
intelligent database system that uses an inferencing process
What were the contributions of Ada (4)
packages - support for data abstraction
exception handling
generic program units
concurrency - through the tasking model
Describe Java (5)
significantly simplified features found in C++
has references but no pointers
automatic memory management through garbage collection
includes support for applets and a form of concurrency
platform independence
Describe Ruby (4)
began as a replacement for Perl and Python
a pure object-oriented scripting language
most operators are implemented as methods which can be redefined by user code
purely interpreted
What is a context-free grammar
language generators, meant to describe the syntax of natural languages
What feature does the programming language Whitespace have
interpreter ignores any non-whitespace character
What are the 6 reasons for studying the concepts of programming languages
increased ability to express ideas
improved background for choosing appropriate languages
increased ability to learn new languages
better understanding of the significance of implementation
better use of languages that are already known
advancement of computing
What are the 8 programming domains
scientific applications
business applications
artificial intelligence
systems programming
web software
embedded systems
3-d graphics and animation
gaming
Describe the scientific applications domain
large numbers of floating point computations and use of arrays
ex of language is fortran
Describe the business applications domain
produce reports using decimal numbers and characters
ex of language is cobol
Describe the AI domain
symbols rather than numbers manipulated, use of linked lists
ex of languages LISP, PROLOG
Describe the systems programming domain
requires efficiency because of continuous use
ex of language X
Describe the web software domain
diverse collection of languages such as markup (HTML), scripting (PHP), general purpose (Java)
Describe the embedded systems domain
software embedded on a closed system for a single purpose examples include automobiles, fitbit, and refrigerators
ex of languages Java, Python, C, mIPS, ARM, X86
Describe the 3-D graphics and animation domain
render very hi-res animation for cinema and television
ex languages Java, C
describe the gaming domain
render 3-d graphics in real time in response to user input
ex of languages C++, C#
What are the 4 language evaluation criteria
readability
writability
reliability
cost
What is the most important criterion for judging a programming language
readability
How were language constructs designed before being designed from the users perspective
initially designed from the computers perspective
Why has readability become important (2)
ease of maintenance largely depends of readability
results in a shift from machine-oriented focus to human-oriented focus
What is orthogonality
relatively small set of primitive constructs can be combined in a small number of ways
ex. operators +, -, *, / can be used with different data types interchangeably
(T/F) Most of the language characteristics that affect readability also affect writability
True
Describe the writability criteria
measures how easy it is for a language to create programs for a selected problem
How do simplicity and orthogonality work together
there are a smaller number of primitive constructs with a consistent set of rules for combining them
What is abstraction
the ability to define and use complicated structures or operations in ways that allow many of the details to be ignored
What are the two distinct categories of abstraction
process and data
What is process abstraction
hides the underlying implementation of a process
What is data abstraction
reduction of data to simplify it
What is expressivity
relatively convenient rather than cumbersome ways of specifying computations
A program is said to be reliable if it performs what conditions (4)
type checking
exception handling
aliasing
readability and writability
what is type checking (2)
testing for type errors in a given program either by the compiler or during program execution
sooner an error is detected the less expensive it is to repair
What language requires type checking of nearly all variables at compile time
java
What is exception handling
the ability to intercept runtime errors, take corrective action, and then continue
What is aliasing (3)
two or more different reference method or names for the same storage unit
in C variables and pointers may refer to same location in memory
very dangerous feature
What criteria both influence reliability
readability and writability
What factors may affect cost
writing programs
training programmers
compiling programs
executing programs
What is Von Neumann architecture? (2)
programs and data are stored in a separate storage unit called memories and are treated the same
meant that computers built with the architecture would be easier to reprogram
What is a imperative programming language
programming with an explicit sequence of commands that update state
What are the central features of imperative programming languages (3)
variables model memory cells
assignment statements model piping
iteration is efficient
What languages do imperative languages include (3)
includes languages that support OOP
includes scripting languages
includes visual languages
What are examples of imperative languages (10)
C, C++, C#, Objective-c, Java, Perl, Python, Ruby, JavaScript, Visual BASIC .NET
What is a procedural programming language
subset of imperative programming which utilizes subroutines
what is the von Neumann bottleneck
primary limiting factor in the speed of computers
What is a functional programming language (2)
the main way to do computations is to apply a function to the given parameters
functions are first class citizens
What are examples of functional programming languages (7)
LISP, Haskell, Racket, Clojure, Scala, ML, F#
What is a logical programming language (3)
rule-based language
rules are specified in no particular order
language implementation system must choose an order in which the rules are used
What are examples of logical programming languages
Prolog, Answer Set Programming, Datalog
What two language categories are subcategories of declarative languages
function and logical language
What are examples of declarative languages (4)
SQL, HTML, XSLT, Prolog
What are examples of Markup/programming hybrid languages (5)
JSTL, XML, XSLT, JSON, SQL
What are the language design tradeoffs (3)
readability vs cost of execution
readability vs writability
writability vs reliability
What is an example of reliability vs cost of execution
java demands all references to array elements be checked for proper indexing, which leads to increased execution costs
What is an example of readability vs writability
APL provides many powerful operators, allowing complex computations to be written in a compact program but at the cost of poor readability
What is an example of writability vs reliability
C++ pointers are powerful and very flexible but are unreliable
What are the 3 implementation methods
compilation
pure interpretation
hybrid implementation system
What is compilation and where is it used (2)
programs are translated into machine languages, includes JIT systems
used in large commercial applications
What is pure interpretation and where is it used (2)
programs are interpreted by another program known as an interpreter
used in small programs or when efficiency is not an issue
What is a hybrid implementation system and where is it used (4)
a compromise between compilers and pure interpreters
used in small and medium systems when efficiency is not the first concern
faster than pure interpretation
high-level language program is translated to an intermediate language that allows easy interpretation
What are the 4 phases of compilation
lexical analysis
syntax analysis
semantics analysis
code generation
What are some characteristics of pure interpretation (5)
no translation
easier implementation
slower execution
requires more space
rarely seen in traditional high-level languages
What is a just-in-time implementation system (3)
initially translate programs to an intermediate language
then compile the subprograms into machine code when they are called
widely used for Java programs
What is a preprocessor (2)
commonly used to specify that code from another file is to be included
processes a program immediately before the program is compiled to expand embedded preprocessor macros
What are the 4 reasons that using machine code was wrong
poor readability
poor modifiability
expression coding was tedious
machine deficiencies -- no indexing or floating point
What is Short Code (2)
expressions were coded by byte-pair values
many equations can be coded in a word
What is Speed coding (4)
pseudo operation for arithmetic and math functions, including floating-point operations
conditional and unconditional branching
auto increment registers for array access
very slow
Describe Fortran I (5)
first implemented version of fortran
no separate compilation
compiler released after 18 years of effort
large programs rarely compiled correctly
code was very fast
Describe Fortran II (2)
Independent compilation
fixed bugs of fortran 1
Describe Fortran IV (3)
explicit type declarations
logical selection statement
subprogram names could be parameters
Describe Fortran 77 (3)
character string handling
logical loop control statement
if-then-else statements
What significant changes did Fortran 77 bring (6)
modules
dynamic arrays
pointers
recursion
CASE statement
parameter type checking
Describe LISP (5)
language used for AI research
used for processing data in lists rather than arrays
symbolic computation rather than numeric
only two data types: atoms and lists
syntax is based on lambda calculus
In what way did LISP pioneer function programming (2)
no need for variables or assignment
control via recursion and conditional expressions
Describe Scheme
dialect of lisp with strong focus on function programming concepts
also supports procedural and imperative-style programming when needed
Describe some characteristics of Scheme (4)
small
extensive use of static scoping
functions as first-class entities
simple syntax making it ideal for educational applications
What is COMMON LISP (2)
effort to combine features of several dialects of LISP into a single language
large, complex, used in industry for some large applications
Describe Scala (3)
full functional support
very strong type system
runs in JVM
Describe the environment of development of ALGOL 60 (4)
fortran barely arrived
many languages were being developed but for specific machines
no portable language
no universal language
What was the reason for developing ALGOL 60
result of efforts to design a universal language
Describe ALGOL 58 (6)
concept of type was formalized
names could be any length
arrays could have any number of subscripts
semicolon as a statement separator
if had an else-if clause
no I/O which would make it machine dependent
What new features did ALGOL 60 bring (5)
two parameter passing methods
block structure
subprogram recursion
stack-dynamic arrays
still no I/O and no string handling
What was COBOL based on
FLOW-MATIC
What were the goals of COBOL (4)
must look like simple english
must be easy to use even if less powerful
broaden the base of computers
must not be biased by current compiler problems
Describe COBOL (5)
first macro facility in a high-level language
hierarchical data structures
nested selection statements
long names
separate data division
What were the design goals of BASIC (5)
easy to learn for non science students
pleasant and friendly
fast turnaround for homework
free and private access
user time is more important than computer time
Describe the features of PL/I (5)
first unit-level concurrency
first exception handling
switch-selectable recursion
first pointer data type
first array cross sections
What were some concerns with PL/I (2)
many new features were poorly designed
too large and too complex
Describe APL (3)
designed as a hardware description language at IBM
highly expressive
programs are very difficult to read
Describe SNOBOL (3)
designed as a string manipulation language
powerful operators for string pattern matching
slower than alternative languages
Describe SIMULA 67 (2)
designed primarily for system simulation
based on ALGOL 60 and SIMULA I
What were SIMULA 67's primary contributions (2)
coroutines
classes, objects, and inheritance
What languages were used for scientific computing (3)
IBM 620 and 7090 computers
FORTRAN
SHARE user group
What languages were used for business computing (3)
IBM 1401, 7080
COBOL
GUIDE user group
Describe ALGOL 68 (4)
design based on orthogonality
user defined data structures
reference types
dynamic arrays
What languages did ALGOL 68 have influence on (3)
Pascal, C, and Ada
What impact did Pascal have
largest impact was on teaching structured programming
Describe C (4)
designed for systems programming
evolved primarily from BCLP, B, and ALGOL 68
powerful set of operators but poor type checking
initially spread through UNIX
Describe Ada 95 (4)
support for OOP through type derivation
better control for shared data
new concurrency features
more flexible libraries
What language was the first full implementation of an object-oriented language
Smalltalk
What language pioneered the graphical user interface design
Smalltalk
Describe C++ (3)
combined imperative and object-oriented programming
evolved from C and SIMULA 67
large and complex language because it supports both procedural and oO programming