[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



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] should we weaponize space

[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

programmeringssprog

Bent Thomsen

bt@cs.aau.dk

Department of Computer Science

Aalborg University

2

So how would you like to

programme in 20 years? 3

How 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 4

Approach

• 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

5

2003/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

6

Programming 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. 7

What is the Most

Important

Open Problem in

Computing?

8

The 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

9

How to increase Programmer Productivity?

3 ways of increasing programmer productivity:1. Process (software engineering)

- Controlling programmers- Good process can yield up to 20% increase

2. Tools (verification, static analysis, program

generation) - Good tools can yield up to 10% increase

3. 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

10

Why 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 C

Different Programming language Design

Philosophies

Other languages

If all you have is

a hammer, then everything looks like a nail. 12

Computers in the good old days

13 ... in the beginning of time 14

Computers today

15

And there is more just around the corner ...

16

And some are really really BIG

17

And everything will be diverse and parallel

18

Programming Language History

1940s

The 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 19

Programming Language History

Late 1940s early 1950s

•Assembly languages - invented to allow machine operations to be expressed

in 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 20

Programming 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"

21

Programming 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 22

Programming 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. 25

Programming 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 26

Programming 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 libraries

including 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!!

28
java.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

JDBC

RMIJFC/SwingDrag and

Drop

Java2D

CORBAJNDI

Java Sound

Timer

Regular Exp

Logging

Assertions

NIO 29

Programming 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

C# Language Enhancements

• C# 2.0 - Generics- Anonymous methods (delegates)- Iterators • C# 3.0quotesdbs_dbs17.pdfusesText_23