1 Object-Oriented Programming: Smalltalk • Developed at Xerox PARC, initially by Alan Kay, later by Adele Goldberg • First full implementation of an object-oriented language (data abstraction, inheritance, and dynamic type binding) • Pioneered the graphical user interface design • Promoted OOP
2 Programming Based on Logic: Prolog • Based on formal logic • Non-procedural • Can be summarized as being an intelligent database system that uses an inference process to infer the truth of given queries • Highly inefficient, small application areas
3 Combining Imperative and Object-Oriented Programming: C++ • Developed at Bell Labs by Stroustrup in 1980 • Evolved from C and SIMULA 67 • Facilities for object-oriented programming, taken partially from SIMULA 67 • Provides exception handling • A large and complex language, in part because it supports both procedural and OO programming • Rapidly grew in popularity, along with OOP • ANSI standard approved in November 1997 • Microsoft’s version (released with .NET in 2002): Managed C++ – delegates, interfaces, no multiple inheritance
4 Related OOP Languages • Eiffel (designed by Bertrand Meyer - 1992) – Not directly derived from any other language – Smaller and simpler than C++, but still has most of the power – Lacked popularity of C++ because many C++ enthusiasts were already C programmers • Delphi (Borland) – Pascal plus features to support OOP – More elegant and safer than C++
5 An Imperative-Based Object-Oriented Language: Java • Developed at Sun in the early 1990s – C and C++ were not satisfactory for embedded electronic devices • Based on C++ – Significantly simplified (does not include struct, union, enum, pointer arithmetic, and half of the assignment coercions of C++) – Supports only OOP – Has references, but not pointers – Includes support for applets and a form of concurrency
6 Java Evaluation • Eliminated unsafe features of C++ • Concurrency features • Libraries for applets, GUIs, database access • Portable: Java Virtual Machine concept, JIT compilers • Widely used for WWW pages • Use for other areas increased faster than any other language • Most recent version, 5.0, released in 2004
7 Scripting Languages for the Web • JavaScript – A joint venture of Netscape and Sun Micro systems – Used in Web programming (client side) to create dynamic HTML documents – Related to Java only through similar syntax • PHP – PHP: Hypertext Pre processor – Used for Web applications (server side); produces HTML code as output • Python – An OO interpreted scripting language – Type checked but dynamically typed – Supports CGI and form processing
8 A C-Based Language for the New Millennium: C# • Part of the .NET development platform • Based on C++ , Java, and Delphi • Provides a language for component-based software development • All .NET languages (C#, Visual BASIC.NET, Managed C++, J#.NET, and Jscript.NET) use Common Type System (CTS), which provides a common class library • Likely to become widely used
9 Markup/Programming Hybrid Languages • XSLT – extensible Markup Language (XML): a meta markup language – extensible Style sheet Language Transformation (XSTL) transforms XML documents for display – Programming constructs (e.g., looping) • JSP – Java Server Pages: a collection of technologies to support dynamic Web documents – servlet: a Java program that resides on a Web server; servlet’s output is displayed by the browser
10 Summary • Development, development environment, and evaluation of a number of important programming languages • Perspective into current issues in language design

Evalution about programming language part 1

  • 1.
    1 Object-Oriented Programming:Smalltalk • Developed at Xerox PARC, initially by Alan Kay, later by Adele Goldberg • First full implementation of an object-oriented language (data abstraction, inheritance, and dynamic type binding) • Pioneered the graphical user interface design • Promoted OOP
  • 2.
    2 Programming Basedon Logic: Prolog • Based on formal logic • Non-procedural • Can be summarized as being an intelligent database system that uses an inference process to infer the truth of given queries • Highly inefficient, small application areas
  • 3.
    3 Combining Imperativeand Object-Oriented Programming: C++ • Developed at Bell Labs by Stroustrup in 1980 • Evolved from C and SIMULA 67 • Facilities for object-oriented programming, taken partially from SIMULA 67 • Provides exception handling • A large and complex language, in part because it supports both procedural and OO programming • Rapidly grew in popularity, along with OOP • ANSI standard approved in November 1997 • Microsoft’s version (released with .NET in 2002): Managed C++ – delegates, interfaces, no multiple inheritance
  • 4.
    4 Related OOPLanguages • Eiffel (designed by Bertrand Meyer - 1992) – Not directly derived from any other language – Smaller and simpler than C++, but still has most of the power – Lacked popularity of C++ because many C++ enthusiasts were already C programmers • Delphi (Borland) – Pascal plus features to support OOP – More elegant and safer than C++
  • 5.
    5 An Imperative-BasedObject-Oriented Language: Java • Developed at Sun in the early 1990s – C and C++ were not satisfactory for embedded electronic devices • Based on C++ – Significantly simplified (does not include struct, union, enum, pointer arithmetic, and half of the assignment coercions of C++) – Supports only OOP – Has references, but not pointers – Includes support for applets and a form of concurrency
  • 6.
    6 Java Evaluation • Eliminated unsafe features of C++ • Concurrency features • Libraries for applets, GUIs, database access • Portable: Java Virtual Machine concept, JIT compilers • Widely used for WWW pages • Use for other areas increased faster than any other language • Most recent version, 5.0, released in 2004
  • 7.
    7 Scripting Languagesfor the Web • JavaScript – A joint venture of Netscape and Sun Micro systems – Used in Web programming (client side) to create dynamic HTML documents – Related to Java only through similar syntax • PHP – PHP: Hypertext Pre processor – Used for Web applications (server side); produces HTML code as output • Python – An OO interpreted scripting language – Type checked but dynamically typed – Supports CGI and form processing
  • 8.
    8 A C-BasedLanguage for the New Millennium: C# • Part of the .NET development platform • Based on C++ , Java, and Delphi • Provides a language for component-based software development • All .NET languages (C#, Visual BASIC.NET, Managed C++, J#.NET, and Jscript.NET) use Common Type System (CTS), which provides a common class library • Likely to become widely used
  • 9.
    9 Markup/Programming HybridLanguages • XSLT – extensible Markup Language (XML): a meta markup language – extensible Style sheet Language Transformation (XSTL) transforms XML documents for display – Programming constructs (e.g., looping) • JSP – Java Server Pages: a collection of technologies to support dynamic Web documents – servlet: a Java program that resides on a Web server; servlet’s output is displayed by the browser
  • 10.
    10 Summary •Development, development environment, and evaluation of a number of important programming languages • Perspective into current issues in language design