Presentation is loading. Please wait.

Presentation is loading. Please wait.

COSC 3127 Programming Languages Dave Goforth FA377.

Similar presentations


Presentation on theme: "COSC 3127 Programming Languages Dave Goforth FA377."— Presentation transcript:

1 COSC 3127 Programming Languages Dave Goforth dgoforth@cs.laurentian.ca FA377

2 Topics of the course Understand current “state-of-the-art” Describe languages formally Understand implementation concepts Understand design concepts With what purpose? More skillful use of languages Evaluation of languages Learning to learn languages New languages

3 Organization Lectures (notes on my website) Textbook (Sebesta, 8/e) Reference materials on Sebesta website Evaluation 5 assignments20% 1 project20% 1 midterm exam20% 1 final exam40%

4 Why programming languages? Calculate my tax bill 0101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 0110011000101010101101010101 1101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 1110011000101010101101010101 if (n<0) x := x+1; else x := 2x; n++;

5 Computer processing Why programming languages? Human effort 1949 2007 ??? Calculate my tax bill 0101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 0110011000101010101101010101 1101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 1110011000101010101101010101

6 Computer processing Why programming languages? Human effort 1949

7 Computer processing Why programming languages? Human effort 2007

8 Language design Question 1 Domain specificORGeneral purpose? Maple Excel Photoshop awk JAVA C,C++,C# Pascal libraries

9 Calculate my tax bill 0101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 0110011000101010101101010101 1101010101101101000101010101 0110011000101010101101010101 0101010101101101000101010100 1110011000101010101101010101 Language design - constraints Humans: Creative Intuitive Forgetful Prone to error Computers: Precise Logical von Neumann architecture

10 von Neumann Architecture (Sebesta)

11 Execution of Machine Code (Sebesta) Fetch-execute-cycle (on a von Neumann architecture) initialize the program counter repeat forever fetch the instruction pointed by the counter increment the counter decode the instruction execute the instruction end repeat

12 Move data I/O data Operate on data (test, compute) Reset program counter Instruction set Memory codes

13 Execution of Machine Code (Sebesta) Fetch-execute-cycle (on a von Neumann architecture) initialize the program counter repeat forever fetch the instruction pointed by the counter increment the counter decode the instruction execute the instruction end repeat Instruction set Move data Operate on data I/O data Reset program counter

14 Memory codes Primitive data types arrays records objects Reset program counter if switch counted recursion branch goto selection repetition logical subprogram Language Evolution from machine level Instruction set

15 Sample slide page Text


Download ppt "COSC 3127 Programming Languages Dave Goforth FA377."

Similar presentations


Ads by Google