Slides 02 Programming Languages - UET CS - Talha Waheed - Classification of PL
Slides 02 Programming Languages - UET CS - Talha Waheed - Classification of PL
But with 500 M operations per second available and doubling every
couple of years
Performance can no longer be the dominant issue!
3
ENIAC To Present
Ruby on Mobile
Rails Development Machine Learning
4
First Generation of Computers
5
Evolution of Communicating with Computers
• Communicating at all by
Cables, Binary, ASSEMBLY LANGUAGE
• Communicating math (formulas)
FORTRAN
• Communicating business math
To non-mathematicians
COBOL
• Communicating algorithms
ALGOL
• Simulation
SIMULA First Ever Computer Program??
6
1st Generations of Languages -
Machine Languages
An example code (von Neumann machine, 1946) for the program
Add numbers in locations 10 and 11 and store result in location 12:
00000010101111001010
00000010111111001000
00000011001110101000
Operations are specified in terms of actual numeric code.
Operand are specified in terms of their absolute address in memory
or as a register number.
Everything is encoded as a sequence of 0s and 1s.
As a result, programming requires deep knowledge of underlying
machine architecture and programs become unintelligible!
9
10
11
History of Language Development
1950s - Exploiting Machine Power
Machine Language, Assembly Languages, FORTRAN
1960s - Increasing Expressive Power
COBOL, Lisp, Algol 60, BASIC, SNOBOL, PL/I, Simula
1970s - Portability and Reliability
Pascal, Algol 68, C
1980s - Managing Complexity
Modula-2, Ada, Smalltalk, Eiffel, ML
1990s - Parallelism, Distribution, Objects
C++, Modula-3, Ada 95, . . . JAVA!!!, XML
2000s - Web based, AI
C#, Ruby, Python, R , What Next ???
12 Programming Languages - Talha Waheed
History: mid-1950s to early 1970s (1/2)
Main areas of application
numerical computation
1957-FORTRAN
1958-Algol
business
1955-FLOWMATIC (Grace Hopper)
1959-COBOL
artificial intelligence
about 1955-IPL, IPL-2, IPL-V (Newell, Shaw, Simon)
Fall 1958-Lisp (McCarthy)
for string processing: COMIT, SNOBOL4
systems programming
CPL, BCPL
1972-C
New applications
(desktop) publishing: TEX, Postscript
software agents and other processes, including scripts
18
19
The Evolution of Human
20
21
Factors Influencing Language Design
The language we "speak" influences what we can say
[Whorf]
Hardware Architecture
Application Domains
New uses and users, Changing requirements
Programming methodologies
Managing large, complex systems
Implementation methods
Improved techniques
Theoretical studies Hardware
Source Source
Code Code
25
Pseudocompilation
Compiler
Intermediate
Code
26
Pseudo-compilation
A compiler translates whole program before execution, but only
into intermediate code.