Shared Flashcard Set

Details

Comparative Test 1
Languages + Principles
48
Computer Science
Undergraduate 3
10/03/2011

Additional Computer Science Flashcards

 


 

Cards

Term
Plankalkul
Definition
  • Konrad Zuse
  • Designed 1945, published 1972
  • Program calculus, data structures, arrays/recursion, math expressions
  • never implemented
Term
Fortran
Definition
  • John Backus
  • For IBM 704
  • 1954, 1957, 1958, 1962
  • 6 char variables, post-test loop, scientific computing
  • introduced concept of compiling
  • static storage
Term
Lisp
Definition
  • John McCarthy, Marvin Minsky (MIT)
  • for AI (list processing)
  • 1958
  • first function programming language
  • atoms and lists
  • based on Lambda Calculus
  • MI, Miranda, and Haskel are related
Term
Algol 60
Definition
  • GAMM, ACM
  • to design a univ. scientific language
  • 1958-1960
  • first step towards sophistication
  • block structure, pass by value/name, recursion
  • standard for publishing algs for 20 years
  • first machine independent language
  • first formally defined by BNF grammar
Term
Cobol
Definition
  • DoD committee
  • Common Business Language
  • 1960
  • data and code are separate
  • fevery statement starts with a verb, reads like english
  • first language to use macros
Term
Basic
Definition
  • John Kemeny, Thomas Kurtz (Dartmouth)
  • easy/more friendly
  • 1964
  • widely used for time sharing
  • designed for lib arts students
  • currently Visual Basic
Term
PL/1
Definition
  • IBM/SHARE
  • Combine features
  • 1963
  • everything for everybody, very complex
  • first to use: unit level concurrency, exception handling, pointer data types, array cross sections
Term
APL
Definition
  • Kenneth Iverson
  • language to describe hardware
  • 1960
  • dynamic typing and storage allocation
  • most powerful language
  • interpreted, early dynamic language
  • many operators, difficult to read, easy to write
Term
SNOBOL
Definition
  • Griswald, Farber, Polensky (Bell Labs)
  • writing text editors
  • 1964
  • early dynamic language
  • text processing
  • powerful operators for string pattern matching
Term
Simula 67
Definition
  • Nyguard and Dahl
  • for simulation
  • 1967
  • beginning of data abstraction
  • classes, objects, inheritance, co-routines
  • extension of Algol 60
Term
Prolog
Definition
  • Comerauer, Roussel, Kowalski
  • Intelligent database
  • 1970's
  • based on formal logic, collection of statements, facts, and rules
  • non-procedural
  • based on predicate calculus
Term
ADA
Definition
  • DoD
  • 1980
  • largest desing effort in history
  • packages, exception handling, generic programming units, concurrency
Term
Smalltalk
Definition
  • Alan Kay (Xerox PARC)
  • user friendly
  • 70's and 80's
  • first full implementation of object oriented programming
  • pioneered GUI desing
  • abstraction similar to classes of Simula 67
Term
Eiffel
Definition
  • Meyer
  • 1992
  • object-oriented
  • smaller/simpler C++ with equal expressivity and writability
Term
C
Definition
  • Dennis Richie (Bell Labs)
  • Systems Programming
  • 1972
  • powerful set of operators
  • poor type-checking
Term
C++
Definition
  • Bell Labs
  • 1980
  • combined imperative and object oriented
  • function parameters, type checking, dynamic binding, methods and classes
Term
Java
Definition
  • Sun Microsystems
  • 1994
  • used C++ as basis, imperative and object oriented
  • sub-programs require definition, no pointers, multiple inheritance, supports applets, simplied C++
  • widely used for web programming
Term
Javascript
Definition
  • Netscape/Sun Microsystems
  • Web tools
  • 1995
  • scripting language for the web, purely interpreted
  • similar to Java only in syntax
Term
PHP
Definition
  • Rasmus Lerdorf
  • 1994
  • scripting language for the web, purely interpreted
  • used for form processing and database access through the web
Term
Algol 68
Definition
  • from Algol 60
  • 1968
  • orthogonal design
  • user-designed data structs, dynamic arrays
Term
Pascal
Definition
  • Nichlaus Wirth
  • Educational Purposes
  • 1971
  • from 70's to 90's, most widely used language for teaching structured programming
  • small and simple
  • Dijkstra liked it
Term
C#
Definition
  • part of .NET development platform
  • 2000
  • Based on C++, Java, Delphi
  • language for component-based software development
Term
Scheme
Definition
  • MIT
  • mid 70's
  • descendent of Lisp
  • extensive use of static scoping and functions
  • small and simple
  • ideal for educational purposes
Term
Perl
Definition
  • Larry Wall
  • 1987
  • scripting language for the web
  • replacement for UNIX sysadmin language
  • vars are statically typed and implicitly declared
  • gained widespread use for CGI programming on the web
Term
Python
Definition
  • Lutz and Ascher
  • 2004
  • object oriented scripting language
  • dynamic typing with type-checking
  • used for CGI programming and form processing
  • supports lists, tuples, and hashing
Term
Lua
Definition
  • Lerusalimschy and others
  • 1994
  • object oriented scripting language
  • dynamic typing with type-checking
  • used for CGI programming and form processing
  • supports lists, tuples, and hashing witha single data stucture: the Table
  • easily extendable
Term
Ruby
Definition
  • Yukihiro Matsumoto
  • 90's
  • began as a replacement for Perl and Python
  • pure object-oriented scripting language (all data are objects)
  • most operators implemented as methods
  • purely interpreted
Term
Programming Domains (name 6)
Definition
  • Scientific
  • Business
  • AI
  • Systems Programming
  • Scripting
  • Special Purpose
Term
Readability Criteria
Definition
  • overall simplicity
  • orthogonality
  • control statements
  • definining data types and structures
  • syntax considerations
Term
Writability Criteria
Definition
  • Simplicity/Orthogonality
  • Support of Abstraction
  • Expressitivity
Term
Reliabilty Criteria
Definition
  • type-checking
  • exception handling
  • aliasing
  • readability and writability
Term
Cost Criteria
Definition
  • training
  • writing
  • compiling
  • optimization
  • implementation system (usually free)
  • reliability
  • maintenaince (can be 2-4 times dev cost)
Term
Other Criteria for Lang. Evaluation
Definition
  • ease of portability
  • degree of standardization
  • general/specific purpose
Term
Language Categories
Definition
  • Imperative
  • Logic
  • Functional
  • Object-Oriented
Term
Imperative Language
Definition
  • variables, assignment statements, iteration
  • C, PASCAL, Fortran, Algol, PL/1
  • specify how to solve the problem
Term
Functional Languages
Definition
  • make computation by applying functions to given parameters
  • Lisp, Scheme, Miranda, Haskel, ML
  • specify what you want done, not how to do it
Term
Logic(al) Laguages
Definition
  • rule based, rules are specified in no special order
  • Prolog
Term
Object-oriented Languages
Definition
  • encapsulates data within objects
  • inheritance, dynamic type-binding
  • grew out of imperative languages
  • C++, Java, Python, etc.
Term
Interpreted vs. Compiled Languages
Definition
  • Interpreted- very inefficient code, dynamic types
  • Compiled- fast code, know difference betweeen 1 and 2-pass compilers
Term
Lexeme
Definition
  • Smallest syntactic unit of a language
Term
Variable L-Value
Definition
  • a variable's address
Term
Variable R-Value
Definition
  • variable's actual value
Term
Binding
Definition
  • an association such as between operator and symbol, name and memory, variable with type, etc.
Term
Binding Times
Definition
  • at language design time
  • at compiler design time
  • at compile time
  • at load time
  • at run-time
Term
Static Binding
Definition
  • occures before run-time, remains unchanged throughout program execution
Term
Dynamic Binding
Definition
  • occurs during execution or can change during execution of program
Term
Type Binding (declarations)
Definition
  • explicit - statement used for declaring variables
  • implicit - default mechanism for specifying type (ex:   Fortran i-n are integers by default)
  • dynamic - specified through assignment statement, in interpreted or functional languages only
  • inferenced- determined by context or use (interpeted languages)
Term
Lifetime Categories
Definition
  • static - bound before execution, allows history sensitive sub-program, no recursion
  • stack dynamic - bound upon block entry, allows recursion, more overhead
  • explicit heap dynamic - allocaction and deallocation by explicit statements (ex: C malloc, Java new)
  • implicit heap dynamic - alloc. and dealloc. caused by assignment statements
Supporting users have an ad free experience!