Click here to load reader

CS 214 Programming Languages

Embed Size (px)

DESCRIPTION

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) - PowerPoint PPT Presentation

Citation preview

CS 214 Programming Languages

Spring 2012CS 214 Programming Languages1DetailsMoodle!REQUIRED text:Sebesta, Programming Language Concepts, 9ed.

Important dates:February 17: Project language choiceMarch 2: Project proposalMarch 16: Midterm (registrars test day)May 7-9: Final project presentationsMay 12, 1:30p: Final ExamCourse ObjectivesGain an understanding of those features all programming languages have in commonUnderstand the differences between imperative, object-oriented, and functional languagesBe introduced to some of the formalisms that underlie programming languagesDemonstrate the ability to master a new programming language on your ownChapter 1 ObjectivesBe able to name, describe, compare and contrast the criteria used to evaluate a languageBe able to name and give at least one distinctive property of each programming language paradigmBe able to name, describe, compare and contrast language implementationsChapter 2 ObjectivesBe able to list pros and cons of binary, assembly and high-level languages (notes)Understand the importance of compilersBe able to name a key player in programming language designBe able to put the programming language paradigms in chronological order based on their developmentProgramming Language HistoryIn the beginning

Binary machine languageDifficult to writeProne to programmer errorsDifficult to debug0010 1011 1000 00000010 1111 1000 01000011 0011 1000 1000Assembly LanguagesMnemonic for each operationSymbolic names instead of memory addresses

Programs called assemblers automate translationMOVADDSTO0010 10110010 11110011 0011MOV IADD JSTO K0010 1011 1000 00000010 1111 1000 01000011 0011 1000 1000IJK1000 00001000 01001000 1000Assembly LanguagesPros:Not quite so cumbersomeSomewhat less error prone

Cons:Not portableNot intuitive

High Level LanguagesRear Admiral Grace Hopper1952: Develops first compiler called, simply, AThe Idea: Write code independent of the machine-level detailsUse a compiler to translate into machine languagek = i + j;MOV IADD JSTO K0010 1011 1000 00000010 1111 1000 01000011 0011 1000 1000compilerassemblerEdsger Dijkstra QuotesThe 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.