Evolution of Programming Languages
Zuse’s Plankalkül (1945)
• Developed by Konrad Zuse; not published until 1972, never implemented.
• Included bits as basic data type, complex types like arrays and records.
• Featured selection statements (no else clause), recursion, and mathematical relationships in
programs.
• Had innovative syntax and semantics for its time, with advanced problems like chess algorithms.
Pseudocodes and Early Programming (1940s - 1950s)
• Programming done in machine code with numeric instruction codes.
• Absolute addressing made modifications tedious.
• Used in early systems before high-level languages emerged.
Short Code (1949)
• Developed by John Mauchly for BINAC, later UNIVAC I.
• First interpreted high-level language; much slower than machine code.
Speedcoding (1953)
• Developed by John Backus for IBM 701.
• Floating-point operations, pseudoinstructions, I/O operations.
• Allowed auto-increment and limited user program space.
UNIVAC Compiling System & Cambridge Contributions
• Grace Hopper: developed pseudocode to machine code.
• David Wheeler: introduced relocatable address blocks.
IBM 704 & FORTRAN
• FORTRAN developed by John Backus, first high-level compiled language.
• FORTRAN I (1957): no explicit typing, focused on performance.
• FORTRAN II (1958): added subroutine compilation.
• FORTRAN IV, 77, 90, 95, 2003, 2008: evolved with types, recursion, modules, OOP, parallelism.
Functional Programming - LISP (1958)
• Developed for AI list processing.
• Atoms and lists as core data structures.
• All computation via functions and recursion.
• Scheme: smaller dialect with static scoping.
• Common Lisp: large, unified dialect for portability.
1
ALGOL Series
• Designed for algorithm publication and scientific computing.
• ALGOL 58: data types, bracketed arrays, structured syntax.
• ALGOL 60: block structure, recursion, stack-dynamic arrays.
COBOL (1960)
• Designed for business applications.
• Influenced by FLOW-MATIC.
• English-like syntax, hierarchical records, macro facilities.
BASIC (1964)
• Easy-to-learn language for non-scientific users.
• First widely-used time-sharing language.
C (1972)
• Developed by Dennis Ritchie at Bell Labs.
• General-purpose language with low-level access.
Ada
• Developed for the U.S. DoD.
• Features: packages, exception handling, generics, concurrency.
Smalltalk
• First true object-oriented language.
• All operations are messages sent to objects.
C++ (1980)
• Created by Bjarne Stroustrup.
• Adds OOP to C, supports overloading, multiple inheritance.
Java (1995)
• Derived from C++, removes pointers, uses garbage collection.
• Enforces OOP, no stand-alone functions.
• Uses interfaces instead of multiple inheritance.
Scripting Languages
• Perl (1987): system admin and text processing.
• JavaScript: browser-side scripting, dynamic content.
• PHP: server-side scripting, web forms, database access.
• Python: dynamically typed, OO scripting.
2
C#
• Developed by Microsoft for .NET.
• Combines C++, Java, and Visual Basic.
• Simplified syntax, improved type safety.
Markup-Programming Hybrid Languages
• XSLT: transforms XML to other formats, supports logic.
• JSP: Java for server-side dynamic web pages.