--Your friends at LectureNotes

Note for Principles of Programming Languages - ppl By JNTU Heroes

  • Principles of Programming Languages - ppl
  • Note
  • Jawaharlal Nehru Technological University Anantapur (JNTU) College of Engineering (CEP), Pulivendula, Pulivendula, Andhra Pradesh, India - JNTUACEP
  • 7 Topics
  • 416 Offline Downloads
  • Uploaded 1 year ago
0 User(s)
Download PDFOrder Printed Copy

Share it with your friends

Leave your Comments

Text from page-2

G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT Principles of Programming Language – C • Web Software – Eclectic collection of languages: markup (e.g., XHTML), scripting (e.g., PHP), general-purpose (e.g., Java) 1.3 Language Evaluation Criteria • Readability: the ease with which programs can be read and understood • Writability: the ease with which a language can be used to create programs • Reliability: conformance to specifications (i.e., performs to its specifications) • Cost: the ultimate total cost Evaluation Criteria: Readability • Overall simplicity – A manageable set of features and constructs – Few feature multiplicity (means of doing the same operation) – Minimal operator overloading • Orthogonality – A relatively small set of primitive constructs can be combined in a relatively small number of ways Every possible combination is legal – • Control statements – The presence of well-known control structures (e.g., while statement) • Data types and structures – The presence of adequate facilities for defining data structures • Syntax considerations Identifier forms: flexible composition – – Special words and methods of forming compound statements – Form and meaning: self-descriptive constructs, meaningful keywords Evaluation Criteria: Writability • Simplicity and orthogonality – Few constructs, a small number of primitives, a small set of rules for combining them • Support for abstraction The ability to define and use complex structures or operations in ways – that allow details to be ignored • Expressivity – A set of relatively convenient ways of specifying operations – Example: the inclusion of for statement in many modern languages Evaluation Criteria: Reliability • Type checking – Testing for type errors • Exception handling – Intercept run-time errors and take corrective measures • Aliasing – Presence of two or more distinct referencing methods for the same memory location • Readability and writability – A language that does not support ―natural‖ ways of expressing an algorithm will necessarily use ―unnatural‖ approaches, and hence reduced reliability

Text from page-3

G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT Principles of Programming Language Evaluation Criteria: Cost • Training programmers to use language • Writing programs (closeness to particular applications) • Compiling programs • Executing programs • Language implementation system: availability of free compilers • Reliability: poor reliability leads to high costs • Maintaining programs Evaluation Criteria: Others • Portability – The ease with which programs can be moved from one implementation to another • Generality – The applicability to a wide range of applications • Well-definedness – The completeness and precision of the language‘s official definition 1.4 Influences on Language Design • Computer Architecture – Languages are developed around the prevalent computer architecture, known as the von Neumann architecture • Programming Methodologies – New software development methodologies (e.g., object-oriented software development) led to new programming paradigms and by extension, new programming languages Computer Architecture Influence • Well-known computer architecture: Von Neumann • Imperative languages, most dominant, because of von Neumann computers – Data and programs stored in memory – Memory is separate from CPU – Instructions and data are piped from memory to CPU – Basis for imperative languages • Variables model memory cells • Assignment statements model piping • Iteration is efficient The von Neumann Architecture

Text from page-4

G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT Principles of Programming Language Programming Methodologies Influences • 1950s and early 1960s: Simple applications; worry about machine efficiency • Late 1960s: People efficiency became important; readability, better control structures – structured programming – top-down design and step-wise refinement • Late 1970s: Process-oriented to data-oriented – data abstraction • Middle 1980s: Object-oriented programming – Data abstraction + inheritance + polymorphism 1.5 Language Categories • Imperative – Central features are variables, assignment statements, and iteration – Examples: C, Pascal • Functional – Main means of making computations is by applying functions to given parameters – Examples: LISP, Scheme • Logic – Rule-based (rules are specified in no particular order) – Example: Prolog • Object-oriented – Data abstraction, inheritance, late binding – Examples: Java, C++ • Markup – New; not a programming per se, but used to specify the layout of information in Web documents – Examples: XHTML, XML 1.6 Language Design Trade-Offs • Reliability vs. cost of execution – Conflicting criteria – Example: Java demands all references to array elements be checked for proper indexing but that leads to increased execution costs • Readability vs. writability – Another conflicting criteria – Example: APL provides many powerful operators (and a large number of new symbols), allowing complex computations to be written in a compact program but at the cost of poor readability • Writability (flexibility) vs. reliability – Another conflicting criteria – Example: C++ pointers are powerful and very flexible but not reliably used 1.7 Implementation Methods • Compilation

Text from page-5

G. NARAYANAMMA INSTITUTE OF TECHNOLOGY & SCIENCE (For Women) DEPARTMENT OF IT Principles of Programming Language – • – • – Programs are translated into machine language Pure Interpretation Programs are interpreted by another program known as an interpreter Hybrid Implementation Systems A compromise between compilers and pure interpreters Layered View of Computer The operating system and language implementation are layered over Machine interface of a computer Compilation • Translate high-level program (source language) into machine code (machine language) • Slow translation, fast execution • Compilation process has several phases: – lexical analysis: converts characters in the source program into lexical units – syntax analysis: transforms lexical units into parse trees which represent the syntactic structure of program – Semantics analysis: generate intermediate code – code generation: machine code is generated The Compilation Process

Lecture Notes