PL CH1a
Which language type model computation as the flow of information (tokens) among primitive functional nodes? Nodes are triggered by the arrival of input tokens, and can operate concurrently.
Dataflow languages
What makes a programming language successful?
Easy to learn, expressive power, ease of implementation, possible to compile to good/small code, powerful sponsers, wide dissemination at minimal cost.
Why are there so many programming languages?
Evolution - we've learned better ways of doing things. Socio-economic factors - proprietary interests. Orientation toward special purposes, hardware. Diverse ideas about what is pleasant to use.
What is generally considered the first high-level programming language?
FORTRAN
Name three von Neumann languages.
Fortran, Ada 83, C
Which language type employs a computational model based on the recursive definition of functions? In essence, a program is considered a function from inputs to outputs defined in terms of simpler functions.
Functional languages
In what way(s) are high-level languages an improvement on assembly language?
High level languages are more easily understood due to their closer approximation to spoken language and mathematical concepts in appearance, thus allow for faster prototyping. Also, high level languages are able to be translated to machine code for virtually any processor (platform independence), whereas an assembler is strictly associated with its processor type.
In what circumstances does it still make sense to program in assembler?
In situations where the abstraction granted by a high-level language would simply get in the way of performance, assembly language is preferred.
Name two widely used concurrent languages.
Java and C# contain concurrent features
Name three object-oriented languages.
Java, C#, C++
What was the first functional language?
LISP
Name three functional languages.
Lisp/Scheme, ML, Haskell
Which language type takes their inspiration from predicate logic. They model computation as an attempt to find values that satisfy certain specified relationships, searching through list of logical rules.
Logic or Constraint based languages
What is the difference between machine language and assembly language?
Machine language is the actual bits used to control the processor in the computer. Assembly language is a more human-readable version of machine language, where certain mnemonics are used to closely mirror machine language instructions.
Why aren't concurrent languages listed as a category in Figure 1.1?
Most concurrent programs are currently written in conjunction with packages allotting concurrent functionality to a sequential language - meaning there may not be a 100% concurrent language.
Which language type have a very structured and distributed model of memory and computation? Evaluates to an object that can interact with other objects.
Object oriented languages
Name two logic languages.
Prolog, SQL
Which language type is a subset of von Neumann and is distinguished by their emphasis on "gluing together" components that were originally developed as independent programs?
Scripting languages
What organization spearheaded the development of Ada?
U.S. Department of Defense
Which language type is based on statements (assignments) that influence subsequent computation?
von Neumann languages