1 / 23

Programming Languages: Concepts, Evaluation Criteria, and Implementation Methods

This chapter covers the reasons for studying concepts of programming languages, programming domains, language evaluation criteria, influences on language design, language categories, language design trade-offs, implementation methods, and programming environments.

Download Presentation

Programming Languages: Concepts, Evaluation Criteria, and Implementation Methods

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1 Preliminaries

  2. Chapter 1 Topics • Reasons for Studying Concepts of Programming Languages • Programming Domains • Language Evaluation Criteria • Influences on Language Design • Language Categories • Language Design Trade-Offs • Implementation Methods • Programming Environments

  3. Reasons for Studying Concepts of Programming Languages • Increased ability to express ideas • Improved background for choosing appropriate languages • Increased ability to learn new languages • Better understanding of significance of implementation • Better use of languages that are already known • Overall advancement of computing

  4. Programming Domains • Scientific applications • Business applications • Artificial intelligence • Systems programming • Web Software

  5. Language Evaluation Criteria

  6. Evaluation Criteria: Readability • Overall Simplicity • Orthogonality • Data Types • Syntax Design

  7. Evaluation Criteria: Writability • Simplicity and orthogonality • Support for abstraction • Expressivity

  8. Evaluation Criteria: Reliability • Type checking • Exception handling • Aliasing • Readability and writability

  9. Evaluation Criteria: Cost • Training programmers to use language • Writing programs • Compiling programs • Executing programs • Language implementation system • Reliability • Maintaining programs

  10. Evaluation Criteria: Others • Portability • Generality • Well-definedness

  11. Influences on Language Design • Computer Architecture • Programming Methodologies

  12. Computer Architecture Influence • Well-known computer architecture • Von Neumann • Imperative languages • most dominant • because of von Neumann computers

  13. Execution of Machine Code Fetch-execute cycle on a von Neumann architecture computer initialize the program counter repeat forever fetch the instruction pointed by the counter increment the counter decode the instruction execute the instruction end repeat

  14. Programming Methodologies Influences • 1950s and early 1960s • machine efficiency • Late 1960s • people efficiency • Late 1970s • process-oriented to data-oriented • Middle 1980s • object-oriented programming

  15. Language Categories • Imperative C, Pascal • Functional LISP, Scheme • Declarative Prolog • Object-oriented Java, C++ • Markup XHTML, XML

  16. Language Design Trade-Offs • Reliability vs. cost of execution • Readability vs. writability • Writability (flexibility) vs. reliability

  17. Implementation Methods • Compilation • Pure Interpretation • Hybrid Implementation Systems

  18. Compilation • Translate source language into machine language • Compilation process has several phases • lexical analysis • syntax analysis • semantics analysis • code generation • Additional Compilation Terminologies • Load module • Linking and loading

  19. Pure Interpretation • No translation • Easier implementation • Slower execution • Often requires more space

  20. Hybrid Implementation Systems • A compromise between compilers and pure interpreters • An intermediate language is used • Faster than pure interpretation

  21. Other Implementation Methodolgies • Preprocessors • Just-in-Time Implementation Systems

  22. Programming Environments The collection of tools used in software development Examples: • UNIX • Borland JBuilder • Microsoft Visual Studio.NET

  23. Summary • The study of programming languages is valuable • Important criteria for evaluating programming languages • Major influences on language design • Major methods of implementing programming languages

More Related