Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programming Language Design

Similar presentations


Presentation on theme: "Programming Language Design"— Presentation transcript:

1 Programming Language Design
Computer Science 312 Programming Language Design

2 Computer Science Data structures Computer organization
Theory of computation Algorithm analysis Programming language design Database management Artificial intelligence Operating systems Web and mobile apps Graphics and image processing Networks

3 Course Goals Experience the functional and concurrent programming styles Learn to program in Haskell, Erlang, and functional Java Learn to write scanners and parsers for different languages Have some FUN!

4 Computer as a Layered System
Memory ALU Control Unit I/O Devices Transistors Logic Circuits Multiplexors Etc. Hardware A program and its data are patterns of voltage levels

5 Computer as a Layered System
Machine language Hardware A program and its data are patterns of 1s and 0s

6 Computer as a Layered System
Assembly language Hardware in length in width load length mul width store area out area halt A program and its data are patterns of mnemonic symbols

7 Computer as a Layered System
High-level language while x > 0: if x % 2 == 0: evens = evens + 1 else: odds = odds + 1 x = x - 1 Hardware A program and its data are patterns of arbitrary symbols, with lots of syntactic structure for the programmer

8 Software Tools File manager Debugger Editor Profiler Compiler
Linker Loader Run-time system Debugger Profiler CASE tools Hardware

9 History of Programming Languages
Fifth Fourth Third Second First Hardware To a certain extent, the layers of programming languages mirror their historical evolution

10 History and Evolution First Second Third Fourth Fifth 1950 Machine
Assembly FORTRAN ALGOL LISP COBOL PASCAL, C PROLOG Modula Smalltalk Ada Erlang Haskell C++, Java, and Python are hybrids of fourth and fifth

11 First Generation Languages
Machine language Assembly language FORTRAN (FOrmula TRANslation Language)

12 First Generation Languages
Programs have a linear structure, isomorphic with the underlying machine structure But FORTRAN allows algebraic notation

13 Second Generation Languages
ALGOL (ALGOrithmic Language) COBOL (COmmon Business-Oriented Language) PL/1

14 Second Generation Languages
Programs are hierarchical in structure Recursion Wide variety of data types and strong type checking

15 Third Generation Languages
Pascal C

16 Third Generation Languages
Hierarchical data structures (arrays, records) Dynamic memory (pointers)

17 Fourth Generation Languages
Modula Ada

18 Fourth Generation Languages
Support for information hiding in packages or modules Support for concurrency

19 Fifth Generation Languages
LISP (LISt Processing Language) Smalltalk PROLOG (PROgramming in LOGic) Haskell, Erlang

20 Fifth Generation Languages
Support for new paradigms of programming: Function-oriented (LISP) Object-oriented (Smalltalk) Logic-oriented (PROLOG) Concurrency-oriented (Erlang)

21 Multiple Models of Computation
Functions Objects Gens 1-4 Hardware von Neumann Processes Logic

22 For next time: Read the Introduction of the Haskell book.
Download and install the Haskell Platform for your computer. Bring it to class.


Download ppt "Programming Language Design"

Similar presentations


Ads by Google