Chapter1Preliminaries. 1.1ReasonsforStudyingConceptsofProgrammingLanguages 1.2ProgrammingDomains 1.3LanguageEvaluationCriteria 1.4InfluencesonLanguageDesign 1.5LanguageCategories 1.6LanguageDesignTrade-offs 1.7ImplementationMethods 1.8ProgrammingEnvironments Summary·ReviewQuestions·ProblemSet Chapter2EvolutionoftheMajorProgrammingLanguages 2.1Zuse'sPlankalkOI 2.2MinimalHardwareProgramming:Pseudocodes 2.3TheIBM704andFortran. 2.4FunctionalProgramming:LISP 2.5TheFirstStepTowardSophistication:ALGOL60 2.6ComputerizingBusinessRecords:COBOL 2.7TheBeginningsofTimesharing:BASIC Interview:ALANCOOPER--UserDesignandLanguageDesign 2.8EverythingforEverybody:PL/I 2.9TwoEarlyDynamicLanguages:APLandSNOBOL 2.10TheBeginningsofDataAbstraction:SIMULA67 2.11OrthogonalDesign:ALGOL68 2.12SomeEarlyDescendantsoftheALGOLs 2.13ProgrammingBasedonLogic:Prolog 2.14History'sLargestDesignEffort:Ada 2.15Object-OrientedProgramming:Smalltalk 2.16CombiningImperativeandObject-OrientedFeatures:C++ 2.17AnImperative-BasedObject-OrientedLanguage:Java 2.18ScriptingLanguages:JavaScript,PHP,andPython 2.19AC-BasedLanguagefortheNewMillennium:C# 2.20Markup/ProgrammingHybridLanguages Summary·BibliographicNotes·ReviewQuestions·ProblemSet Chapter3DescribingSyntaxandSemantics 3.1Introduction 3.2TheGeneralProblemofDescribingSyntax 3.3FormalMethodsofDescribingSyntax 3.4AttributeGrammars HistoryNote 3.5DescribingtheMeaningsofPrograms:DynamicSemantics HistoryNote Summary·BibliographicNotes·ReviewQuestions·ProblemSet· ProgrammingExercises Chapter4LexicaiandSyntaxAnalysis 4.1Introduction 4.2LexicalAnalysis 4.3TheParsingProblem 4.4Recursive-DescentParsing 4.5Bottom-UpParsing Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter5Names,Bindings,TypeChecking,andScopes 5.1Introduction 5.2Names HistoryNote HistoryNote 5.3Variables HistoryNote 5.4TheConceptofBinding Interview:RASMUSLERDORF--ScriptingLanguagesandOther ExamplesofSlickSolutions 5.5TypeChecking 5.6StrongTyping 5.7TypeCompatibility HistoryNote 5.8Scope 5.9ScopeandLifetime 5.10ReferencingEnvironments 5.11NamedConstants Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter6DataTypes 6.1Introduction 6.2PrimitiveDataTypes 6.3CharacterStringTypes HistoryNote 6.4User-DefinedOrdinalTypes 6.5ArrayTypes HistoryNote HistoryNote 6.6AssociativeArrays Interview:RASMUSLERDORF--TheOpenSourceMovement andWorkLife 6.7RecordTypes 6.8UnionTypes 6.9PointerandReferenceTypes HistoryNote Summary·BibliographicNotes·ReviewQuestions· ProblemSet·ProgrammingExercises Chapter7ExpressionsandAssignmentStatements 7.1Introduction 7.2ArithmeticExpressions HistoryNote 7.3OverloadedOperators 7.4TypeConversions HistoryNote 7.5RelationalandBooleanExpressions HistoryNote 7.6Short-CircuitEvaluation 7.7AssignmentStatements HistoryNote 7.8Mixed-modeAssignment Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter8Statement-LevelControlStructures 8.1Introduction 8.2SelectionStatements HistoryNote HistoryNote 8.3IterativeStatements HistoryNote Interview:LARRYWALL--Part1:LinguisticsandtheBirth ofPeri 8.4UnconditionalBranching HistoryNote 8.5GuardedCommands 8.6Conclusions Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter9Subprograms 9.1Introduction 9.2FundamentalsofSubprograms 9.3DesignIssuesforSubprograms 9.4LocalReferencingEnvironments 9.5Parameter-PassingMethods Interview:LARRYWALL--Part2:ScriptingLanguagesinGeneral.. andPeriinParticular HistoryNote HistoryNote HistoryNote 9.6ParametersThatAreSubprogramNames HistoryNote 9.7OverloadedSubprograms 9.8GenericSubprograms 9.9DesignIssuesforFunctions 9.10User-DefinedOverloadedOperators 9.11Coroutines HistoryNote Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter10ImplementingSubprograms 10.1TheGeneralSemanticsofCallsandReturns 10.2Implementing"Simple"Subprograms 10.3ImplementingSubprogramswithStack-DynamicLocalVariables 10.4NestedSubprograms Interview:NIKLAUSWlRTH--KeepingItSimple 10.5Blocks 10.6ImplementingDynamicScoping Summary·ReviewQuestions·ProblemSet Chapter11AbstractDataTypesandEncapsulationConstructs 11.1TheConceptofAbstraction 11.2IntroductiontoDataAbstraction 11.3DesignIssuesforAbstractDataTypes 11.4LanguageExamples Interview:BJARNESTROUSTRUP--C++:ItsBirth,Its Ubiquitousness,andCommonCriticisms 11.5ParameterizedAbstractDataTypes 11.6EncapsulationConstructs 11.7NamingEncapsulations Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter12SupportforObject-OrientedProgramming 12.1Introduction 12.2Object-OrientedProgramming 12.3DesignIssuesforObject-OrientedLanguages 12.4SupportforObject-OrientedProgramminginSmalltalk 12.5SupportforObject-OrientedProgramminginC++ Interview:BJARNESTROUSTRUP--OnParadigmsand BetterProgramming 12.6SupportforObject-OrientedProgramminginJava 12.7SupportforObject-OrientedProgramminginC# 12.8Supportfor0bject-OrientedProgramminginAda95 12.9TheObjectModelofJavaScript 12.10ImplementationofObject-OrientedConstructs Summary·ReviewQuestions·ProblemSet·ProgrammingExercises Chapter13Concurrency 13.1Introduction 13.2IntroductiontoSubprogram-LevelConcurrency 13.3Semaphores HistoryNote 13.4Monitors 13.5MessagePassing 13.6AdaSupportforConcurrency 13.7JavaThreads 13.8C#Threads 13.9Statement-LevelConcurrency Summary·BibliographicNotes·ReviewQuestions·ProblemSet· ProgrammingExercises Chapter14ExceptionHandlingandEventHandling 14.1IntroductiontoExceptionHandling HistoryNote 14.2ExceptionHandlinginAda 14.3ExceptionHandlinginC++ 14.4ExceptionHandlinginJava Interview:JAMESGOSLING--TheBirthofJava 14.5IntroductiontoEventHandling 14.6EventHandlingwithJava Summary·BibliographicNotes·ReviewQuestions·ProblemSet Chapter15FunctionalProgrammingLanguages 15.1Introduction 15.2MathematicalFunctions 15.3FundamentalsofFunctionalProgrammingLanguages 15.4TheFirstFunctionalProgrammingLanguage:LISP 15.5AnIntroductiontoScheme 15.6COMMONLISP 15.7ML 15.8Haskell 15.9ApplicationsofFunctionalLanguages 15.10AComparisonofFunctionalandImperativeLanguages Summary·BibliographicNotes·ReviewQuestions·ProblemSet· ProgrammingExercises Chapter16LogicProgrammingLanguages 16.1Introduction 16.2ABriefIntroductiontoPredicateCalculus 16.3PredicateCalculusandProvingTheorems 16.4AnOverviewofLogicProgramming 16.5TheOriginsofProlog 16.6TheBasicElementsofProlog 16.7TheDeficienciesofProlog 16.8ApplicationsofLogicProgramming Summary·BibliographicNotes·ReviewQuestions·ProblemSet· ProgrammingExercises Bibliography Index...