ICS%20313 - ICS313 FundamentalsofProgrammingLanguages

Info iconThis preview shows pages 1–16. Sign up to view the full content.

View Full Document Right Arrow Icon
ICS 313 Fundamentals of Programming Languages  First Semester 2002 - 2003  (021) Information & Computer Science Department
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Course Outline 1. Preliminaries 2. Evolution of the Major Programming languages 3. Describing Syntax and Semantics 4. Lexical and Syntax Analysis 5. Names, Bindings, Type Checking and Scopes 6. Data Types 7. Expressions and the Assignment Statements 8. Statement-Level Control Structure 9. Subprograms 10. Abstract Data Types 11. Object-Oriented Programming 12. Concurrency 13. Exception Handling 14. Functional Programming
Background image of page 2
1.  Preliminaries
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reasons to study concepts of PLs Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Understanding the significance of implementation Increased ability to design new languages Overall advancement of computing
Background image of page 4
Programming Domains Scientific applications Business applications Artificial intelligence Systems programming Scripting languages Special purpose languages
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Language Evaluation Criteria Readability The most important criteria Factors Overall simplicity Too many features is bad Multiplicity of features is bad Orthogonality Makes the language easy to learn and read Meaning is context independent Control statements Data type and structures Syntax considerations Writability Factors Simplicity and orthogonality Support for abstraction Expressivity
Background image of page 6
Language Evaluation Criteria (cont.) Reliability Factors Type checking Exception handling Aliasing Readability and writability Cost Categories Programmer training Software creation Compilation Execution Compiler cost Poor reliability Maintenance Others: portability, generality, well-definedness
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Influences on language design Computer architecture We use imperative languages, at least in part, because we use von Neumann machines
Background image of page 8
Influences on language design (cont.) Programming methodologies 1950s and early 1960s: Simple applications; worry about machine efficiency Late 1960s: People efficiency became important; readability, better control structures Late 1970s: Data abstraction Middle 1980s: Object-oriented programming
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Language Categories Imperative Functional Logic Object-oriented (closely related to imperative)
Background image of page 10
Language Design Trade-offs Reliability versus cost of execution Writability versus readability Flexibility versus safety
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Implementation Methods Compilation Translate high-level program to machine code Slow translation Fast execution
Background image of page 12
Implementation Methods (cont.) The compilation process
Background image of page 13

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Implementation Methods (cont.) Pure interpretation No translation Slow execution Becoming rare
Background image of page 14
Implementation Methods (cont.) Hybrid implementation systems Small translation cost Medium execution speed
Background image of page 15

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 16
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 270

ICS%20313 - ICS313 FundamentalsofProgrammingLanguages

This preview shows document pages 1 - 16. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online