60 likes | 233 Views
Language Design Issues. Juan Carlos Guzmán CS 6123 Theory & Implementation of Programming Languages Southern Polytechnic State University. Fortran C Pascal Java PostScript TeX APL ML. Lisp Cobol Snobol Haskell Perl Rexx C++ PHP. Why So Many Languages?. Oracle C# Adobe Basic
E N D
Language Design Issues Juan Carlos Guzmán CS 6123 Theory & Implementation of Programming Languages Southern Polytechnic State University
Fortran C Pascal Java PostScript TeX APL ML Lisp Cobol Snobol Haskell Perl Rexx C++ PHP Why So Many Languages? • Oracle • C# • Adobe • Basic • Forth • PL/1 • Ada • Awk • Smalltalk • Eiffel • Javascript • HTML • Modula • … • …
Why Programming Languages? • What is computation? • How do we express computation? • What type of computation do we need to express? • Numerical Application • Business Application • Artificial Intelligence • Systems Programming
Languages vs Machines • Machines influence languages • You will develop languages that can express feasible computation • Word Processing in the 1960’s? • packed arrays in Pascal • Languages influence machines • call/return assembly instructions • Frame pointers • Caches
Clarity, simplicity and unity readability avoidance of similar notation for different meanings Orthogonality Features of the language should be able to be combined Naturalness for the application Good mapping algorithm/syntax Support for abstraction Ability to use program elements by their abstract properties Ease of Program verification Programming Environment IDE Portability of Programs Programs should be transportable across implementations Low Cost of Use Program Execution Program Translation Program Creation, testing and use Program Maintenance Desirable Attributes of Languages
Imperative Languages how it is to be computed Declarative Languages what is to be computed Functional Languages value of elements Logic Languages accumulation of constraints Object-Oriented Languages Everything is an object Computation as object interaction Language Paradigms