Presentation is loading. Please wait.

Presentation is loading. Please wait.

13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research... 13.2 Summary, Trends, Research...  Summary: functional, logic and object-oriented.

Similar presentations


Presentation on theme: "13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research... 13.2 Summary, Trends, Research...  Summary: functional, logic and object-oriented."— Presentation transcript:

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.


Download ppt "13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research... 13.2 Summary, Trends, Research...  Summary: functional, logic and object-oriented."

Similar presentations


Ads by Google