100 likes | 233 Views
CS 214 Programming Languages. Spring 2012. Details . Moodle! REQUIRED text: Sebesta , Programming Language Concepts , 9ed. Important dates: February 17: Project language choice March 2 : Project proposal March 16 : Midterm (registrar’s test day)
E N D
CS 214 Programming Languages Spring 2012
Details • Moodle! • REQUIRED text: • Sebesta, Programming Language Concepts, 9ed. • Important dates: • February 17: Project language choice • March 2: Project proposal • March 16: Midterm (registrar’s test day) • May 7-9: Final project presentations • May 12, 1:30p: Final Exam
Course Objectives • Gain an understanding of those features all programming languages have in common • Understand the differences between imperative, object-oriented, and functional languages • Be introduced to some of the formalisms that underlie programming languages • Demonstrate the ability to master a new programming language on your own
Chapter 1 Objectives • Be able to name, describe, compare and contrast the criteria used to evaluate a language • Be able to name and give at least one distinctive property of each programming language paradigm • Be able to name, describe, compare and contrast language implementations
Chapter 2 Objectives • Be able to list pros and cons of binary, assembly and high-level languages (notes) • Understand the importance of compilers • Be able to name a key player in programming language design • Be able to put the programming language paradigms in chronological order based on their development
Programming Language History • In the beginning… • Binary machine language • Difficult to write • Prone to programmer errors • Difficult to debug 0010 1011 1000 0000 0010 1111 1000 0100 0011 0011 1000 1000
Assembly Languages • Mnemonic for each operation • Symbolic names instead of memory addresses • Programs called assemblers automate translation MOV ADD STO 0010 1011 0010 1111 0011 0011 I J K 1000 0000 1000 0100 1000 1000 MOV I ADD J STO K 0010 1011 1000 0000 0010 1111 1000 0100 0011 0011 1000 1000
Assembly Languages • Pros: • Not quite so cumbersome • Somewhat less error prone • Cons: • Not portable • Not intuitive
High Level Languages • Rear Admiral Grace Hopper • 1952: Develops first compiler called, simply, A • The Idea: Write code independent of the machine-level details • Use a compilerto translate into machine language MOV I ADD J STO K 0010 1011 1000 0000 0010 1111 1000 0100 0011 0011 1000 1000 k = i + j; compiler assembler
EdsgerDijkstra Quotes • The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. • It is practically impossible to teach good programming to students who have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. • APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.