Lecture #1 Programming Languages MISHRA
mishra@cs.nyu.edu
http://cs.nyu.edu/
C++
: Programming Language,
Addison Wesley Publishers.ISBN 0-201-12078-X.
---Slide 2---
Administrivia
---Slide 3---
Who is interested in
Programming Languages?
---Slide 4---
Language Designers
ii) Interaction among the features
int
, Boolean
, float
, double
, ,
---Slide 5---
Compiler Writers
---Slide 6---
Why are we Interested in Programming Languages?
---Slide 7---
A Brief History of Programming Languages
Early Languages
Simple compiler capable of producing efficient code. First Fortran compiler construction: 1955--1957.
Standardized by ANSI (American National Standards Institute) in 1966 and by ISO (International Standards Organization) in 1978. Latest standard---ANSI X3.198--1992, September 1992.
---Slide 8---
History (Contd)
Block structure
Recursive Procedures
Data Types
Scope Rules (Lexical)
ALGOL 68---Parallel computing, Semaphores, Coercion, Overloading, Flexible Arrays
Hard to implement.
---Slide 9---
History (Contd)
A list of symbols: E.g., word in a sentence,
attributes, algebraic expressions
List represents both data and expressions (Cambridge
Polish Notation.)---S-expressions
Functional Programming
Dialects: MacLisp, FranzLisp, BBNLisp...
Standardization: Common LISP and Scheme. 1975--1985.
Simulation of Physical entities
Objects with independent existence--OOPS. SIMULA 67
Beta: successor of Simula in the 90's
---Slide 10---
History (Contd)
Mainly for business Data processing applications (e.g., payroll)
Succinct representation obtained by compositional application of operations on high-level structures such as arrays and matrices.
Processing of string data
Concepts of generators. Pattern matching by unification
Icon: successor of SNOBOL in the mid 80's
---Slide 11---
History (Contd)
Recent Languages
Goal was to replace FORTRAN and COBOL by a more
powerful language.
ANSI standard in 1976. ``General Purpose Subset'' in 1981.
As a language it failed, mostly due to its complexity.
Easy to learn, code and debug.
ANSI Standard in 1978. True BASIC in 1985.
---Slide 12---
History (Contd)
C
: Dennis Ritchie at Bell Labs. 1972. Influenced
by B
and BCPL
(Ken Thompson).
Low level language. With greater access to hardware
environment (necessary in applications such as graphics,
networking, etc.)
Good interface with operating system (UNIX
and
the libraries)
ANSI standard in 1989.
Low level abilities.
Optimizing compiler for BLISS 11 to run on PDP 11.
---Slide 13---
History (Contd)
Structured Languages
Influenced by ALGOL 68 (ALGOL W).
Simple, 1 Pass compiler. First compiler written in
FORTRAN by a single graduate student.
Pedagogic language. Used for teaching structured
program development via stepwise refinement.
User-defined types.
Standard Pascal lacks dynamic arrays. Makes its hard
to use for many real applications.
Allows programs to be organized in modules
Some amount of encapsulation
---Slide 14---
History (Contd)
Object Oriented Languages
Object Oriented Programming (OOP).
Concept of classes. Object is an instance of a
class.
Classes are organized in a class hierarchy.
Properties can be inherited from super/base classes.
C++
: Bajrne Stroustroup. 1982--1985.
Influenced by SIMULA. Evolved from an earlier version
called ``C
with classes.''
Class mechanisms, Inheritance, Friend-mechanisms.
Template (polymorphisms).
Powerful, yet efficient.
---Slide 15---
Imperative Languages
---Slide 16---
Turing Awards
Or, Why you may want to design a Programming Language.
---Slide 17---
The
INTERCAL
Programming Language