Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.

Similar presentations


Presentation on theme: "University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory."— Presentation transcript:

1 University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory - develop new concepts –Evaluation - build new languages History –Machine language –Assembly language –FORTRAN, COBOL –Pascal, C, Smalltalk –Ada, C++, Java

2 University of Houston-Clear Lake Proprietary© 1997 Java Simple Object-oriented Distributed Interpreted Robust Secure Architecture neutral Portable High performance Multi-threaded Dynamic language

3 University of Houston-Clear Lake Proprietary© 1997 Object-Oriented Languages Abstraction Encapsulation Inheritance Polymorphism

4 University of Houston-Clear Lake Proprietary© 1997 Abstraction Real World Object Abstraction of the Object Color Price Options Position Velocity Forces Width Height Weight Object-oriented

5 University of Houston-Clear Lake Proprietary© 1997 Encapsulation Data Operations and Access to object’s data is controlled Object-oriented

6 University of Houston-Clear Lake Proprietary© 1997 Inheritance Object-oriented

7 University of Houston-Clear Lake Proprietary© 1997 Polymorphism Object-specific operations Overloading of method names “abc” “de” “abcde” 3 4 7 float String Object-oriented

8 University of Houston-Clear Lake Proprietary© 1997 Distributed High-level support for networking URL and other classes from java.net package Easy to read a remote file or other resource Can invoke remote methods Can download and run code from across the Internet Distributed

9 University of Houston-Clear Lake Proprietary© 1997 Interpreted Java compiler generates byte-code for the JVM –the Java Virtual Machine Interpreted Java Virtual Machine Java byte code Computer XYZ

10 University of Houston-Clear Lake Proprietary© 1997 Architecture-Neutral and Portable The Java byte-code is architecture neutral because it can be executed on any machine that supports the Java Virtual Machine No implementation-dependent aspects to the language –size of each of the primitive data types is specified Few platform dependencies Write - Once - Run - Many Portable

11 University of Houston-Clear Lake Proprietary© 1997 Simple Number of language constructs has been kept small Language is similar to C and C++ No header files No preprocessor No struct statement No goto statement No pointers Automatic garbage collection Simple

12 University of Houston-Clear Lake Proprietary© 1997 Robust Strongly-typed Better compile-time error checking No pointer-related bugs No memory leaks Support for exception handling Explicit method declarations are required Casts of objects are checked at compile time Robust

13 University of Houston-Clear Lake Proprietary© 1997 Secure Several layers of security protection to protect against malicious code Pointers cannot be forged Memory cannot be accessed beyond the limits of an array or string’s dimensions Byte-code verification prevents stack overflows and illegal byte-codes Sandbox model - applets cannot access local file system Support for digital signatures for untrusted code Secure

14 University of Houston-Clear Lake Proprietary© 1997 High-Performance Although about 10 times slower than C coded applications, Java 1.1 is about twice as Java 1.0 Common operations like string concatenation are in native code Many interpreter systems include just-in-time compilers to allow code to run faster on a particular CPU Faster than many other interpreted languages and than most scripting languages like Tcl or Perl High-Performance

15 University of Houston-Clear Lake Proprietary© 1997 Multi-Threaded Multiple threads of execution are possible Could have audio file playing, image file downloading, and graphical animation going on simultaneously Java syntax support threads directly with synchronized keyword Can easily start threads, stop threads, and assign priorities Multi-Threaded


Download ppt "University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory."

Similar presentations


Ads by Google