Evolution of the Major Programming Languages



Similar documents
1. Overview of the Java Language

What is a programming language?

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

1/20/2016 INTRODUCTION

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

CSCI 3136 Principles of Programming Languages

CSE 130 Programming Language Principles & Paradigms

The C Programming Language course syllabus associate level

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Programming Languages

CSC 551: Web Programming. Spring 2004

Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)

McGraw-Hill The McGraw-Hill Companies, Inc.,

Lecture 1: Introduction

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz

Programming Language Inter-conversion

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

CSC Software II: Principles of Programming Languages

C# and Other Languages

Whitepapers at Amikelive.com

Java (12 Weeks) Introduction to Java Programming Language

Web Pages. Static Web Pages SHTML

General Introduction

Web Development Frameworks

Konzepte objektorientierter Programmierung

Fundamentals of Java Programming

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

An Overview of Java. overview-1

Chapter 6: Programming Languages

COS 301 Programming Languages

Java vs. Java Script

Course MS10975A Introduction to Programming. Length: 5 Days

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

CSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution

Java Application Developer Certificate Program Competencies

El Dorado Union High School District Educational Services

Habanero Extreme Scale Software Research Project

Developing Embedded Software in Java Part 1: Technology and Architecture

Announcements FORTRAN ALGOL COBOL. Simula & Smalltalk. Programming Languages

by Pearson Education, Inc. All Rights Reserved.

Chapter 5 Names, Bindings, Type Checking, and Scopes

Efficiency of Web Based SAX XML Distributed Processing

CSE 307: Principles of Programming Languages

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Principles of Programming Languages Topic: Introduction Professor Louis Steinberg

Application Development,.NET

Object Oriented Software Design II

Java the UML Way: Integrating Object-Oriented Design and Programming

Chapter 12 Programming Concepts and Languages

How To Understand Programming Languages And Programming Languages

Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013

Image credits:

COMPARATIVE STUDY OF BROWSER BASED OPEN SOURCE TESTING TOOLS WATIR AND WET

Chapter 1 Programming Languages for Web Applications

Business & Computing Examinations (BCE) LONDON (UK)

.NET and J2EE Intro to Software Engineering

Programming. Languages & Frameworks. Hans- Pe(er Halvorsen, M.Sc. h(p://home.hit.no/~hansha/?page=sodware_development

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

Programming Language Pragmatics

Do general-purpose programming languages have a future?

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc

n Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation

APACHE. Presentation by: Lilian Thairu

THE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES. 1. Introduction

Fundamentals of Programming and Software Development Lesson Objectives

Certified PHP Developer VS-1054

Web Programming Languages Overview

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

C++ INTERVIEW QUESTIONS

Web Development in Java

OKLAHOMA SUBJECT AREA TESTS (OSAT )

language 1 (source) compiler language 2 (target) Figure 1: Compiling a program

How To Teach Object Oriented Programming At An Introductory Level Course

.NET Overview. Andreas Schabus Academic Relations Microsoft Österreich GmbH

What Perl Programmers Should Know About Java

Web development... the server side (of the force)

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Programming Languages

Programming Languages & Tools

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

A Performance Comparison of Web Development Technologies to Distribute Multimedia across an Intranet

Semantic Analysis: Types and Type Checking

Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich

Jonathan Worthington Scarborough Linux User Group

COMPUTER SCIENCE. 1. Computer Fundamentals and Applications

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Transcription:

142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence of it is solve a problem by using real-world objects and their process and simulating them. Group #4 Alexis Rivera Fernando Rodríguez Wilberto Lopez Carlos Torres Marvin Poueriet Edwin Román Marcos Álvarez Oscar Rivera : Object-oriented programming language created somewhere 1980. This language was created on a project of Alan Kay and the Xerox company, in the creation of one of the early personal computers Xerox Alto. This came from his original concept Dynabook, which is close to what now days are tablets and slates. 143 144 Object Oriented Programming: Smalltalk Language Overview: It was based on the Flex Language and SIMULA67. As an object-oriented language, all of its computing capacities are done through objects and methods. Smalltalk is not just a language, it is also a complete software development environment. Object Oriented Programming: Smalltalk Evaluation: It s windowing system has become the dominant user interface system. Although object-oriented programming ideas got popular from SIMULA67, they were more developed within Smalltalk. It s readability and writability are not to complex, and its Graphical User Interface (GUI) turned to be on of its most used features. 1

145 146 Combining Imperative and Object-Oriented Language: C++ Language C++ builds languages facilities, borrowed from Simula 67, on top of C to support, object-oriented programming, much of what Smalltalk pioneered. It evolved from C by improving its imperative features and adding constructs to support object-oriented programming. Moving from C to C++ In 1980, Bjarne Stroustrup, from Bell Laboratories, made the first step in creating C++ from C. Function parameter type checking, conversion, and Classes were added. Derived classes, friend classes, public/private access controls, constructors and destructors. Later in 1981, inline functions, default parameters, and overloading of the assignment operator were added, and the resulting language was called C with Goals of C with Classes Primary goal provide a language where programs could be organize with classes and inheritance. Second goal little or no performance penalty relative to C. Third goal that it could be use for every application for which C could be used, therefore virtually none of the features of C would be removed, not even those considered to be unsafe. C++ is born 1984 Inclusion of virtual methods, method name and operator overloading, and reference types. This version was called C++. 1985 - CFront, first implementation which translated C++ programs into C programs. (Release 1.0) 1985 1989 continued to evolve based on user feedback. Release 2.0 support for multiple inheritance and abstract classes. Release 3.0 (1990) addition of templates and exception handling. Standardized in 1998 (ISO 98).NET + C++ = MC++ In 2002,.NET was released which included a new version of C++, named Managed C++ (MC++). Provides access to the functionality of the.net Framework Inclusion of properties, delegates, interfaces, and reference types for garbage-collected objects. (multiple inheritance not supported) Language Overview Constructs to define types: Classes and Structs. Multiple Inheritance is supported. Methods = member functions (Unlike Java) Supports both procedural and object-oriented programming. Operators and methods can be overloaded. Dynamic binding provided by virtual methods. Templates methods and classes can be parameterized. Exception handling. 147 Evaluation Pros Became and remains a very popular language due to the availability of good and inexpensive compilers. Almost completely backward compatible with C. Allows to link C++ code with C code, therefore easier to learn for many C programmers. Cons Very large and complex language (PL/I) Inherited most of the insecurities of C. 148 2

An Imperative-Based Object Oriented Language: Java In 1990, Sun Microsystems decided that neither C or C++ would be satisfactory for developing software for consumer electronic devices. The design of Java was guided by the fundamental goal of providing greater simplicity and reliability than believed were provided by C++. Java designers started with C++, removed numerous constructs, changed some, and added a few others. The resulting language provides much of the power and flexibility of C++, but in smaller, simpler, safer and more reliable language. ARF9 149 Language Overview Differences Between C/C++ and Java Has both classes and primitive types, which are not objects based on classes, as does C++. Objects are accessed through reference variables, but the primitive types are value types. Java arrays are instances of a predefined class, whereas in C++ are not. Java doesn t have pointers, instead it has reference types that provide some of the capabilities of pointers. References and pointers are almost alike, but pointers point to memory locations, while references point to objects. Which makes arithmetic between references nonsense. Unlike C/C++ Java has Boolean primitive type used mainly for control expressions. Java does not support procedural programming, there is no construct in Java that is called a function or a sub program; methods can only be called through a class or object. C++ supports multiple inheritance directly in its class definitions. Java supports only single inheritance, though you can still gain multiple inheritance by the use of its interface construct. Java includes a relatively simple form of concurrency control through its synchronize modifier, which can appear in methods and blocks. In java it is relatively easy to create threads Addition of the Garbage Collector ARF10 150 ARF11 ARF12 151 152 Evaluation Java trims out excess and/or unsafe features of C++, making it more reliable Any language could be translated to an intermediate form and run on any platform hat had a virtual machine for that intermediate form, yet the trade-off is cost in interpretation. The initial Java interpreter was at least ten times slower than any C++ compiler. To make Java competitive to C++ Java programs are now translated to machine code before being executed, using Just In Time (JIT) compilers. In the first years, Java was primary used for programming World Wide Web pages using applets. Java applets are small programs that run on the Web client when it finds an applet call in the HTML of a page displaying. When called, the intermediate code form of the applet is downloaded from the server to the client and the output is displayed in the browser. Java applet have recently decayed due to the appearance of client-side scripting languages, such as JavaScript. The use of Java increased faster than any other language. This is because Java offered a powerful, reliable language that was easier and safer than C++. It is now used for a wide variety of applications. Scripting Languages for the Web: JavaScript Joint venture between Netscape and Sun Microsystems Originally called LiveScript Follows ECMA-262 and ISO-16262 standards Microsoft has a version called JScript Related to Java only by similar syntax Dynamically typed (variable types are not determined at compile time) Character strings and arrays have dynamic length Does not support inheritance or dynamic method call binding Widely used as a web programming tool Create dynamic HTML documents Check the validity of form inputs 3

Slide 9 ARF9 (C was small but did not support object oriented programming, which was necessary and C++ had supported Object Oriented but was large and complicated since it also supported procedure-oriented programming) Slide 10 ARF10 ARF11 ARF12 in C++ u can create wrapper classes to add features like index range checking in arrays and stuff, but this is implicit in Java concurrent programs Garbage collector which frees the programmer from being concerned with putting storage back to the heap when it is no longer needed, so it doesn suffer from memory leakage. memory leakage = the storage is allocated but never deallocated

153 154 Scripting Languages for the Web: PHP Developed by Rasmus Lerdorf, Apache Group PHP: Hypertext Preprocessor Originally called Personal Home Page Basic object-oriented programming functionality HTML-embedded server-side scripting designed to web applications Allow simple access for HTML form Excellent language for web access databases. Support for database management systems. Related to Java and JavaScript Dynamic nature of its strings and arrays, and its use of dynamic typing. Similar to JavaScript in its syntactic appearance. PHP's arrays are a combination of JavaScript's arrays and Perl's associative arrays. Scripting Languages for the Web: Python Developed by Guido van Rossum. Python characteristics Supports multiple programming paradigms Interpreted and interactive Emphasizes code readability High-level general-purpose PL that can be applied to many different classes of problems Python code looks like executable pseudo code Strong presence on the web 155 156 Scripting Languages for the Web: Ruby Motivation for Ruby development Yukihiro Matsumoto, wasn't comfortable with Python and Perl Ruby Characteristics Pure object oriented language; but it supports other paradigms Interpreted language Dynamics and strong typing Syntactically similar to Ada and Eiffel A New Language for the New Millennium: C# Language based on C++ and Java. Also includes ideas from Delphi since its lead designer created Delphi. Part of the.net Framework alongside with Visual Basic, Managed C++, J# and Jscript. All these languages are compiled into the same Intermediate Language (IL) and then compiled using a Just-In-Time compiler (JIT). Unlike Java it has support for pointers, structs, enum types, operator overloading and goto. 4

157 158 C# Evaluation Safer enum types due to implicit conversion to integers. Structs are changed to be a lightweight construct, able to implement interfaces. Switch statement changed by using goto statements at the end to be able to move to the next instead of using a break at the end. Contain Delegates which are object-oriented and type-safe method references. C# More Features Variable number of parameters by using the params reserved word. Uses same typing system for primitives and objects. Also includes the Rectangular Array (multidimensional) array structure and a for each statement. 5