Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Language Design Issues Juan Carlos Guzmán CS 6123 Theory & Implementation of Programming Languages Southern Polytechnic State University
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