12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research... 13.2 Roadmap  Summary: —Trends in programming paradigms  Research:...

Slides:



Advertisements
Similar presentations
The State Transition Diagram
Advertisements

8. Static Single Assignment Form Marcus Denker. © Marcus Denker SSA Roadmap  Static Single Assignment Form (SSA)  Converting to SSA Form  Examples.
10. Applications of Logic Programming. © O. Nierstrasz PS — Applications of Logic Programming 10.2 Roadmap 1. Search problems —SEND + MORE = MONEY 2.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Sources  Cay Horstmann, Computing.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
ESE Einführung in Software Engineering 6. Modeling Objects and Classes Prof. O. Nierstrasz.
ESE Einführung in Software Engineering 7. Modeling Behaviour Prof. O. Nierstrasz.
Introduction to Software Engineering 7. Modeling Behaviour.
INF 212 ANALYSIS OF PROG. LANGS Type Systems Instructors: Crista Lopes Copyright © Instructors.
CP — Concurrent Programming 8. Liveness and Asynchrony Prof. O. Nierstrasz Wintersemester 2005 / 2006.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
10. Petri Nets Prof. O. Nierstrasz. Roadmap  Definition: —places, transitions, inputs, outputs —firing enabled transitions  Modelling: —concurrency.
Object-Oriented Reengineering Patterns and Techniques Prof. O. Nierstrasz Prof. S. Ducasse T.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap  Syntax and Semantics  Semantics of Expressions 
6. Introduction to the Lambda Calculus. © O. Nierstrasz PS — Introduction to the Lambda Calculus 6.2 Roadmap  What is Computability? — Church’s Thesis.
12. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:...
4. Functional Programming. © O. Nierstrasz PS — Functional Programming 4.2 Roadmap Overview  Functional vs. Imperative Programming  Pattern Matching.
12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Overview  Common errors … —Typical.
ESE Einführung in Software Engineering N. XXX Prof. O. Nierstrasz Fall Semester 2009.
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
The Software Composition Group Prof. O. Nierstrasz
ESE Einführung in Software Engineering
13. Summary, Trends, Research. © O. Nierstrasz PS — Summary, Trends, Research Summary, Trends, Research...  Summary: functional, logic and object-oriented.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed lambda calculus.
13. A bit of Smalltalk. © Oscar Nierstrasz 2 Roadmap  The origins of Smalltalk  What is Smalltalk?  Syntax in a nutshell  Seaside — web development.
CP — Concurrent Programming 12. Petri Nets Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Metamodeling Seminar X. CHAPTER Prof. O. Nierstrasz Spring Semester 2008.
Programmierung 2 Object-Oriented Programming with Java Prof. O. Nierstrasz Sommersemester 2006.
ESE Einführung in Software Engineering
© Oscar Nierstrasz ST — Smalltalk Basics 2.1 Change sets  Make sure your changes are logged to a new change set.
ESE Einführung in Software Engineering X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
Programmierung 2 Object-Oriented Programming with Java Orla Greevy Sommersemester 2007.
N. XXX Prof. O. Nierstrasz Thanks to Jens Palsberg and Tony Hosking for their kind permission to reuse and adapt the CS132 and CS502 lecture notes.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap Overview  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed.
12. Common Errors, a few Puzzles. © O. Nierstrasz P2 — Common Errors, a few Puzzles 12.2 Common Errors, a few Puzzles Sources  Cay Horstmann, Computing.
7. Fixed Points. © O. Nierstrasz PS — Fixed Points 7.2 Roadmap  Representing Numbers  Recursion and the Fixed-Point Combinator  The typed lambda calculus.
7. Liveness and Asynchrony Prof. O. Nierstrasz. Roadmap  Asynchronous invocations  Simple Relays —Direct invocations —Thread-based messages —Command-based.
© S. Demeyer, S. Ducasse, O. Nierstrasz Chapter.1 MakeMoney Corp. C*O of MakeMoney Corp. Our Vision  We invest in software  We do not know software 
OORPT Object-Oriented Reengineering Patterns and Techniques X. CHAPTER Prof. O. Nierstrasz.
CP — Concurrent Programming X. CHAPTER Prof. O. Nierstrasz Wintersemester 2005 / 2006.
12. eToys. © O. Nierstrasz PS — eToys 12.2 Denotational Semantics Overview:  … References:  …
Collecting Images & Clippings Chapter 2.3 in Sketching User Experiences: The Workbook.
+ Java vs. Javascript Jessi Style. + Java Compiled Can stand on its own Written once, run anywhere Two-stage debugging Java is an Object Oriented Programming.
Win8 on Intel Programming Course The challenge Paul Guermonprez Intel Software
7. Just In Time Compilation Prof. O. Nierstrasz Jan Kurs.
© Copyright Showeet.com I NSERT YOUR TITLE HERE. © Copyright Showeet.com Insert Your Title Here 2 Master text styles –Second level Third level –Fourth.
The Animated Sequence Chapter 5.1 in Sketching User Experiences: The Workbook.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
Generative Programming. Automated Assembly Lines.
Numerical Methods Continuous Fourier Series Part: Continuous Fourier Series
Sketching Vocabulary Chapter 3.4 in Sketching User Experiences: The Workbook Drawing objects, people, and their activities.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Win8 on Intel Programming Course Paul Guermonprez Intel Software
Design of Everyday Things Part 2: Useful Designs? Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Images from:
 Programming - the process of creating computer programs.
About the Author A Lifetime of Software Development Started Writing Code at Age 11 Programming Summer Camp at Age 12 Writing Code Ever Since At Age 25,
Images of pesticides By: Leslie London, University of Cape Town This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5.
Scripting Languages Info derived largely from Programming Language Pragmatics, by Michael Scott.
Digital Ecosystems supporting growth and SMEs 1st cluster meeting Results and commitments 1st cluster meeting Results and commitments.
Open Access and Institutional Repositories, 10 July 2007, UKZN, Durban,,South Africa Metadata for institutional repositories: an introduction Pat Liebetrau.
Numerical Methods Multidimensional Gradient Methods in Optimization- Example
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Sketching Vocabulary Chapter 3.4 in Sketching User Experiences: The Workbook Drawing objects, people, and their activities.
Agenda Video pre-presentations Digital sketches & photo traces
Methodology Overview 2 basics in user studies Lecture /slide deck produced by Saul Greenberg, University of Calgary, Canada Notice: some material in this.
Embedded Linux Conference - April 2009
FOTW Worksheet Slides Christopher Penn, Financial Aid Podcast Student Loan Network.
Presentation transcript:

12. Summary, Trends, Research

© O. Nierstrasz PS — Summary, Trends, Research Roadmap  Summary: —Trends in programming paradigms  Research:... —scg.unibe.ch

© O. Nierstrasz PS — Summary, Trends, Research C and C++ Good for:  systems programming  portability Bad for:  learning (very steep learning curve)  rapid application development  maintenance Trends:  increased standardization  generative programming

© O. Nierstrasz PS — Summary, Trends, Research Functional Languages Good for:  equational reasoning  declarative programming Bad for:  OOP  explicit concurrency  run-time efficiency (although constantly improving) Trends:  standardization: Haskell  extensions (concurrency, objects)

© O. Nierstrasz PS — Summary, Trends, Research 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...)

© O. Nierstrasz PS — Summary, Trends, Research 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:  reasoning about concurrency and other side effects  “pluggable”, optional types

© O. Nierstrasz PS — Summary, Trends, Research 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”)

© O. Nierstrasz PS — Summary, Trends, Research 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

© O. Nierstrasz PS — Summary, Trends, Research Logic Programming Good for:  searching (expert systems, graph & tree searching...)  symbolic interpretation Bad for:  debugging  modularity Trends:  constraints  concurrency  modules

© O. Nierstrasz PS — Summary, Trends, Research 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:  aspect-oriented programming  prototype-based programming (renaissance)

© O. Nierstrasz PS — Summary, Trends, Research 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  scripting web applications

© O. Nierstrasz PS — Summary, Trends, Research Visual Programming Languages Good for:  Simulation, games  GUI programming Bad for:  Complex algorithms  Scale Trends:  Programming for kids  Model transformation

© O. Nierstrasz PS — Summary, Trends, Research License > 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.