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