Your SlideShare is downloading. ×
ICS 313 - Fundamentals of Programming Languages 1ICS 313Fundamentals of Programming LanguagesDr. Abdallah Al-SukairiSecond...
ICS 313 - Fundamentals of Programming Languages 21. PreliminariesReasons to study concepts of PLsIncreased capacity to exp...
ICS 313 - Fundamentals of Programming Languages 3Programming DomainsScientific applicationsBusiness applicationsArtificial...
ICS 313 - Fundamentals of Programming Languages 4Language Evaluation Criteria (cont.)ReliabilityFactorsType checkingExcept...
ICS 313 - Fundamentals of Programming Languages 5Influences on language design (cont.)Programming methodologies1950s and e...
ICS 313 - Fundamentals of Programming Languages 6Language Design Trade-offsReliability versus cost of executionWritability...
ICS 313 - Fundamentals of Programming Languages 7Implementation Methods (cont.)The compilation processImplementation Metho...
ICS 313 - Fundamentals of Programming Languages 8Implementation Methods (cont.)Hybrid implementation systemsSmall translat...
Upcoming SlideShare
Loading in...5
×

1 preliminaries

168

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
168
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "1 preliminaries"

  1. 1. ICS 313 - Fundamentals of Programming Languages 1ICS 313Fundamentals of Programming LanguagesDr. Abdallah Al-SukairiSecond Semester 2002 - 2003 (022)King Fahd University of Petroleum & MineralsInformation & Computer Science DepartmentCourse Outline1. Preliminaries2. Evolution of the Major Programming languages3. Describing Syntax and Semantics4. Lexical and Syntax Analysis5. Names, Bindings, Type Checking and Scopes6. Data Types7. Expressions and the Assignment Statements8. Statement-Level Control Structure9. Subprograms10. Abstract Data Types11. Object-Oriented Programming12. Concurrency13. Exception Handling14. Functional Programming15. Logical Programming
  2. 2. ICS 313 - Fundamentals of Programming Languages 21. PreliminariesReasons to study concepts of PLsIncreased capacity to express programmingconceptsImproved background for choosing appropriatelanguagesIncreased ability to learn new languagesUnderstanding the significance of implementationIncreased ability to design new languagesOverall advancement of computing
  3. 3. ICS 313 - Fundamentals of Programming Languages 3Programming DomainsScientific applicationsBusiness applicationsArtificial intelligenceSystems programmingScripting languagesSpecial purpose languagesLanguage Evaluation CriteriaReadabilityThe most important criteriaFactorsOverall simplicityToo many features is badMultiplicity of features is badOrthogonalityMakes the language easy to learn and readMeaning is context independentControl statementsData type and structuresSyntax considerationsWritabilityFactorsSimplicity and orthogonalitySupport for abstractionExpressivity
  4. 4. ICS 313 - Fundamentals of Programming Languages 4Language Evaluation Criteria (cont.)ReliabilityFactorsType checkingException handlingAliasingReadability and writabilityCostCategoriesProgrammer trainingSoftware creationCompilationExecutionCompiler costPoor reliabilityMaintenanceOthers: portability, generality, well-definednessInfluences on language designComputer architectureWe use imperative languages, at least in part, because we usevon Neumann machines
  5. 5. ICS 313 - Fundamentals of Programming Languages 5Influences on language design (cont.)Programming methodologies1950s and early 1960s: Simple applications; worry aboutmachine efficiencyLate 1960s: People efficiency became important;readability, better control structuresLate 1970s: Data abstractionMiddle 1980s: Object-oriented programmingLanguage CategoriesImperativeFunctionalLogicObject-oriented (closely related to imperative)
  6. 6. ICS 313 - Fundamentals of Programming Languages 6Language Design Trade-offsReliability versus cost of executionWritability versus readabilityFlexibility versus safetyImplementation MethodsCompilationTranslate high-levelprogram to machinecodeSlow translationFast execution
  7. 7. ICS 313 - Fundamentals of Programming Languages 7Implementation Methods (cont.)The compilation processImplementation Methods (cont.)Pure interpretationNo translationSlow executionBecoming rare
  8. 8. ICS 313 - Fundamentals of Programming Languages 8Implementation Methods (cont.)Hybrid implementation systemsSmall translation costMedium execution speedProgramming EnvironmentsThe collection of tools used in software developmentUNIXAn old operating system and tool collectionBorland JBuilderA PC environment for JavaSmalltalkA language processor/environmentMicrosoft Visual C++A large, complex visual environment

×