Programming Languages: An Introduction
Programming Languages: An Introduction
Application domains
• Scientific applications
• Business applications
1
• Scripting languages
• Special-purpose languages
• Writability
• Reliability
Readability
• Simplicity
2
– Too many constructs may cause problems
– Mulitiplicity of features does not help
Example: i = i + 1;
i+ = 1;
i + +;
+ + i; (l-value and r-value problems)
• Orthogonality
• Control constructs
3
• Data types supported
Example: A language with no boolean variable
• Other features supported
Example: SORT, MERGE verbs in COBOL
• Sysntax issues
– identifier length restrictions: FORTRAN, COBOL
– reserved words
Writability
• Simplicity
• Orthogonality
• Abstraction support
• Expressivity (being cryptic is not necessarily a virtue)
Reliability
• Type checking
• Aliasing
• Exception handling
Cost
• Cost of training programmers
• Cost of writing programs
• Cost of compilation
• Cost of execution vs. cost of compilation: student environment and
production environment
• Costs arising out of unreliable performance
• Costs of program maintenence
4
Main factors affecting language design
• The von Neumann architecture: imperative programming
• Methodologies:
Language categories
• Imperative
• Functional
• Logic
• Object-oriented
– slow translation
– fast execution
• Interpretation
– no translation
– slow execution
• Hybrid methods