COP 4020 Programming Langauges Dr. Roy Levow –Office hours: M 5-6:30 – –
Why Study Programming Languages? Improve ability to develop algorithms Improve use of programming languages Increase vocabulary of programming constructs Allow better choice of Programming Languages Facilitate learning new languages Facilitate designing new languages
Short History FORTRAN 1957 Algol 1958 COBOL 1960 LISP 1960 C 1972
Software Architecture Batch Interactive Personal computer Embedded systems Distributed computing Internet
Application Domains Business Scientific System Artificial Intelligence Publishing Process
Influences for Language Modification Computer capabilities Applications Programming methods Implementation methods Theoretical studies Standardization
Attributes of a Good Language Clarity, simplicity, unity Orthogonality Naturalness to application Support for abstraction Ease of program verification
Good Attributes (cont.) Programming environment Portability of programs Cost of use –Execution –Translation –Creation, testing, use –Maintenance
Syntax and Semantics
Language Paradigms Imperative Applicative Rule-based Object-oriented
Language Standardization Proprietary standards Consensus standards Timeliness Conformance Obsolencence
Internationalization Alphabet and collating sequence Date format Time format Currency Time zones Ideographic systems
Programming Environments Editor, compiler, debugger, etc. Interpretation Separate compilation and linking Testing and debugging