Download presentation
Presentation is loading. Please wait.
1
13. Summary, Trends, Research
2
© O. Nierstrasz PS — Summary, Trends, Research... 13.2 Summary, Trends, Research... Summary: functional, logic and object-oriented languages Research:... www.iam.unibe.ch/~scg
3
© O. Nierstrasz PS — Summary, Trends, Research... 13.3 C and C++ Good for: systems programming portability Bad for: learning (very steep learning curve) rapid application development maintenance Trends: increased standardization generative programming
4
© O. Nierstrasz PS — Summary, Trends, Research... 13.4 Functional Languages Good for: equational reasoning declarative programming Bad for: OOP explicit concurrency run-time efficiency (although constantly improving) Trends: standardization: Haskell, “ML 2000” extensions (concurrency, objects): Facile, “ML 2000”, UFO...
5
© O. Nierstrasz PS — Summary, Trends, Research... 13.5 Lambda Calculus Good for: simple, operational foundation for sequential programming languages Bad for: programming Trends: object calculi concurrent, distributed calculi (e.g., pi calculus, “join” calculus...)
6
© O. Nierstrasz PS — Summary, Trends, Research... 13.6 Type Systems Good for: catching static errors documenting interfaces formalizing and reasoning about domains of functions and objects Bad for: reflection; self-modifying programs Trends: automatic type inference reasoning about concurrency and other side effects
7
© O. Nierstrasz PS — Summary, Trends, Research... 13.7 Polymorphism Good for: parametric good for generic containers subtyping good for frameworks (generic clients) overloading syntactic convenience (classes in Haskell, overloading in Java) coercion convenient, but may obscure meaning Bad for: local reasoning optimization Trends: combining subtyping, polymorphism and overloading exploring alternatives to subtyping (“matching”)
8
© O. Nierstrasz PS — Summary, Trends, Research... 13.8 Denotational Semantics Good for: formally and unambiguously specifying languages sequential languages Bad for: modelling concurrency and distribution Trends: “Natural Semantics” (inference rules vs. equations) concurrent, distributed calculi
9
© O. Nierstrasz PS — Summary, Trends, Research... 13.9 Logic Programming Good for: searching (expert systems, graph & tree searching...) symbolic interpretation Bad for: debugging modularity Trends: constraints concurrency modules
10
© O. Nierstrasz PS — Summary, Trends, Research... 13.10 Object-Oriented Languages Good for: domain modelling developing reusable frameworks Bad for: learning (steep learning curve) understanding (hard to keep systems well-structured) semantics (no agreement) Trends: component-based software development aspect-oriented programming
11
© O. Nierstrasz PS — Summary, Trends, Research... 13.11 Scripting Languages Good for: rapid prototyping high-level programming reflection; on-the-fly generation and evaluation of programs gluing components from different environments Bad for: type-checking; reasoning about program correctness performance-critical applications Trends: replacing programming as main development paradigm scriptable applications graphical “builders” instead of languages
12
© O. Nierstrasz PS — Summary, Trends, Research... 13.12 License > http://creativecommons.org/licenses/by-sa/2.5/ Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Attribution-ShareAlike 2.5 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.