Basic Research (Grundforskning) – someone has to do it All software is written in a programming language 15 And there is more just around the corner Parametric polymorphism • Type inference • (Garbage collection) – Hope
Previous PDF | Next PDF |
[PDF] Future Programming Languages - Department of Computer Science
Basic Research (Grundforskning) – someone has to do it All software is written in a programming language 15 And there is more just around the corner Parametric polymorphism • Type inference • (Garbage collection) – Hope
[PDF] The Future of OOP
Here are their views on the future of programming, competing languages, Should we expect a true component-oriented language to evolve? Who will create
[PDF] Next-Paradigm Programming Languages - Yannis Smaragdakis
The dream of programming language design is to bring about orders-of-magnitude productivity improvements in software development tasks No future language will give us the factor of 10 advantage that assembler gave us over binary No future language will give us 50 , or 20 , or even 10 reduction in workload
[PDF] Empirical Analysis of Programming Language - Leo Meyerovich
Some programming languages become widely popular while others fail to grow beyond are much more likely to use a language they already know In Section 5, we with programming languages, a longitudinal study might assist future work guage, but the creator has fewer grounds to expect usage ) Figure 1a shows
Programming Languages - DiVA
code structure with easier to write syntaxes, more complex functionality, and 9 2 4 Is there things you would like to see in future languages (changes, We expect to find some sort of pattern of popularity and be able to compare it to the less
[PDF] C++ future
12 mai 2011 · What is going to change in this programming language? What new features will it have? ⇨ We have a “Final Committee Draft” for C++0x I expect
[PDF] Programming Languages: History and Future - THE CORE MEMORY
Programming languages are almost as old as ACM, this paper I hope to indicate some of the problems in (and in fact most of these apply to any program)
[PDF] show a list of the ten commandments
[PDF] show appendix in table of contents latex
[PDF] show limn→∞ an n > 0 for all a ∈ r
[PDF] show me all country zip code
[PDF] show me erie county jail roster
[PDF] show me what a hexagon looks like
[PDF] show that (p → q) ∧ (q → r) → (p → r) is a tautology by using the rules
[PDF] show that (p → r) ∧ q → r and p ∨ q → r are logically equivalent
[PDF] show that 2^p+1 is a factor of n
[PDF] show that 2^p 1(2p 1) is a perfect number
[PDF] show that 4p^2 20p+9 0
[PDF] show that a sequence xn of real numbers has no convergent subsequence if and only if xn → ∞ asn → ∞
[PDF] show that etm turing reduces to atm.
[PDF] show that every infinite turing recognizable language has an infinite decidable subset.
Fremtidens
programmeringssprogBent Thomsen
bt@cs.aau.dkDepartment of Computer Science
Aalborg University
2So how would you like to
programme in 20 years? 3How would you like to program in 20 years?
• Research project (codename P2025) - Reviewing the state-of-the-art- Experimenting with advanced programming • Functional and OO integration - Developing a new programming language • "The P-gang": • Kurt Nørmark • Lone Leth • Bent Thomsen 4Approach
• Basic Research (Grundforskning) - someone has to do it ...• We want to influence the next generation of mainstream
programming languages• Integration playground for new language ideas• Constructive: design and implement
- languages and compilers- Experimental systems• Openness and open source• Umbrella covering the research work of the group in coming years
- Research, Master Thesis (speciale), DAT7/8 and PhD• You are now part of a project running over several years • Several Master Student projects already done
52003/2004/2005/2006/2007 Projects
• DAT5/INF7/SW9- Java vs. .Net Mobile (ver. 1 and 2) - Business Process Management- Quality control in Open Source Development- Impedance mismatch (performance, C#, Java)- XML and programming language representation- Languages and games- Aspect oriented Programming
• DAT6/INF8/SW10- Mobile Business Process Infrastructure based on Ambients- Aspect.Net and JTL- Search for WS based on Semantic Web- Performance analysis of J2ME systems- Communication in Open Source Projects- New concurrency constructs in Java- Type inference for Ruby
•DAT8/D8- Java vs. C on DSP- Multiple dispatch in C#- Real-time Java- Agile development methods and PhP programming
6Programming Language Research
• Oldest CS discipline (except HW) - All software is written in a programming language- over 50 years since first Fortran compiler • Long term research- New ideas, concepts, ... implemented in "pure" language- May eventually become understood and incorporated in mainstream Languages- It takes 10++ years for a paradigm shift to make it to industrial practice- It takes 5 years from language ideas to industrial strength implementation- And 5 years of "deltas" to make it competitive
• High Risk - Low Reward - One in 7000 languages make it- Hardly anybody (except Bill Gates) make money on PrgL. 7What is the Most
Important
Open Problem in
Computing?
8The Most
Important Open Problem in Computing
Increasing Programmer Productivity
- Write programs correctly- Write programs quickly- Write programs easily •Why?- Decreases support cost- Decreases development cost- Decreases time to market- Increases satisfaction
Todd A. Proebsting
9How to increase Programmer Productivity?
3 ways of increasing programmer productivity:1. Process (software engineering)
- Controlling programmers- Good process can yield up to 20% increase2. Tools (verification, static analysis, program
generation) - Good tools can yield up to 10% increase3. Language design--- the center of the universe!
- Core abstractions, mechanisms, services, guarantees- Affect how programmers approach a task (C vs. SML)- New languages can yield 700% increase
10Why Are There So Many Programming
Languages
• Why does some people speak French?• Programming languages have evolved over time as better ways have been developed to design them.- First programming languages were developed in the 1950s- Since then thousands of languages have been developed
• Different programming languages are designed for different types of programs. 11 CDifferent Programming language Design
Philosophies
Other languages
If all you have is
a hammer, then everything looks like a nail. 12Computers in the good old days
13 ... in the beginning of time 14Computers today
15And there is more just around the corner ...
16And some are really really BIG
17And everything will be diverse and parallel
18Programming Language History
1940sThe first electronic computers were monstrous
contraptions- Programmed in binary machine code by hand- Code is not reusable or relocatable- Computation and machine maintenance were difficult:
• cathode tubes regularly burned out• The term ''bug''originated from a bug that reportedly roamed
around in a machine causing short circuits 19Programming Language History
Late 1940s early 1950s
•Assembly languages - invented to allow machine operations to be expressedin mnemonic abbreviations - Enables larger, reusable, and re-locatable programs- Actual machine code is produced by an assembler- Early assemblers had a one-to-one correspondence
between assembly and machine instructions- Later: expansion of macros into multiple machine instructions to achieve a form of higher-level programming 20Programming Language History
Mid 1950s
• Fortran , the first higher-level language - Now programs could be developed that were machine independent!- Main computing activity in the 50s: solve numerical problems in science and engineering- Other high-level languages soon followed:• Algol 58 is an improvement compared to Fortran• Cobol for business computing• Lisp for symbolic computing and artificial intelligence• BASIC for "beginners"
21Programming Language History
1960s• Structured Programming, Dijkstra, Dahl, and
Hoare.• Pascal, Niklaus Wirth (ETH, Zurich)
- Modelled after Algol-No GOTO- Very strongly typed- Procedures nested inside each other- Designed for teaching programming
• Simula, Dahl and Nygaard (Norway) - The first language with objects, classes, and subclasses 22Programming Language History
1970s• C, Ken Thompson (Bell Labs) - Successor to B, which was stripped-down BCPL.- High-level constructs and low-level power • Ada, Jean Ichbiah (France) - Instigated by the Department of Defense- Designed for systems programming, especially embedded systems. 23
Programming Language History
1970s• Smalltalk, Alan Kay, Adele Goldberg (Xerox PARC) - Graphics-rich •GUI• Fonts - Object-oriented • Everything is an object• Objects communicate through messages • Scheme, Gerald Sussman & Guy Steele (MIT) - LISP with static scoping • Prolog, Philippe Roussel (France) - Based on rules, facts, and queries. 24
Programming Language History
1980s• Object-oriented programming
- Important innovation for software development- The concept of a class is based on the notion of data
type abstraction from Simula 67 , a language for discrete event simulation that has classes but no inheritance • 1979-1983: C++ Bjarne Stroustrop (Bell Labs)- Originally thought of as "C with classes".- First widely-accepted object-oriented language.- First implemented as a pre-processor for the C
compiler. 25Programming Language History
1980s• Functional Programming - Extensive list of new concepts
• Lazy vs. eager evaluation• Pure vs. imperative features• Parametric polymorphism• Type inference• (Garbage collection)
-Hope-Clean- Haskell-SML-Caml 26Programming Language History
1990s• HTML, Tim Berners-Lee (CERN) - "Hypertext Markup Language" • Language of the World Wide Web. - A markup language, not a programming language. • Scripting languages - PERL. • CGI or Apache module -TCL/TK • Easy construction of GUIs - Languages within Web pages • JavaScript, VBScript• PHP, ASP, JSP • Java, James Gosling (Sun) 27
The evolution of Java
• 1993 Oak project at Sun - small, robust, architecture independent, Object-Oriented, language to control interactive TV.- didn't go anywhere • 1995 Oak becomes Java - Focus on the web • 1996 Java 1.0 available• 1997 (March) Java 1.1 - some language changes, much larger library, new event handling model • 1997 (September) Java 1.2 beta - huge increase in librariesincluding Swing, new collection classes, J2EE• 1998 (October) Java 1.2 final (Java2!)• 2000 (April) Java 1.3 final• 2001 Java 1.4 final (assert)• 2004 Java 1.5 (parameterized types, enum, ...)• 2005 J2EE 1.5• 2006 Java 1.6• 2006 (August) Java 1.7 project starts - Open Source!!
28java.applet, java.awt, java.io, java.lang, java.net, java.util java.math, java.rmi, java.security, java.sql, java.text, java.beans javax.accessibility, javax.swing, org.omg javax.naming, javax.sound, javax.transaction java.nio, javax.imageio, javax.net, javax.print, javax.security, org.w3c javax.activity, javax. management
Java 1.08 packages212 classes
Java 1.123 packages504 classes
Java 1.259 packages1520 classes
Java 1.377 packages
1595 classes
Java 1.4103 packages
2175 classes
Java 1.5131 packages2656 classes
New Events
Inner class
Object
Serialization
Jar Files
International
Reflection
JDBCRMIJFC/SwingDrag and
DropJava2D
CORBAJNDI
Java Sound
TimerRegular Exp
Logging
Assertions
NIO 29Programming Language History
2000s•XML• Microsoft .NET - Multiple languages • C++•C#• Visual Basic•COBOL• Fortran•Eif f el - Common virtual machine- Web services 30
C# History
• 12/1998 - COOL project started• 07/1999 - First internal ports to COOL• 02/2000 - Named changed to C#• 07/2000 - First public preview release• 02/2002 - VS.NET 2002, C# 1.0 released• 05/2003 - VS.NET 2003, C# 1.1 released• 06/2004 - Beta 1 of VS 2005, C# 2.0• 04/2005 - Beta 2 of VS 2005, C# 2.0• 08/2005 - VS 2005, C# 2.0 released• 10/2005 - C# 3.0 announced
31