StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Programming languages Comparison and History - Research Paper Example

Cite this document
Summary
A computer program is simply is the process of abstraction of complexity to a user from a process. The program interface makes it easy for a user to be involved into a process and achieve his desired objectives. …
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER95.6% of users find it useful
Programming languages Comparison and History
Read Text Preview

Extract of sample "Programming languages Comparison and History"

? Programming languages Comparison and History Table of Contents Introduction 1 HIGH AND LOW LEVEL PROGRAMMING LANGUAGES 2 PROCEDURAL LANGUAGES 1.3 OBJECT ORIENTED PARDIGM 1.4 SCRIPTING LANGUAGES 1.5 MARKUP LANGUAGES 1.6 PARALLEL LANGUAGES 2. General History of Programming Languages 3. Comparison among different Paradigms 3.1 MARKUP LANGUAGES AND SCRIPTING LANGUAGES 3.2 COMPARISON BETWEEN PROCEDURAL PARADIGMS AND OOP PARDIGMS 4. References 1. INTRODUCTION A computer program is simply is the process of abstraction of complexity to a user from a process. The program interface makes it easy for a user to be involved into a process and achieve his desired objectives. A software program either working on high dimensional vector spaces (finding Eigen vectors) or any kind of information system like airline reservation system, parcel tracking system, bar code reader, point of sale system etc. , the objective is simple “hiding the complexity”. Different approaches have been taken into account for “hiding the complexity”, i.e. abstraction on theoretical bases. These different approaches are based upon the need and view point of the analyst i.e. how he looks upon the system. Programming languages basically belong to these approaches or view points to solve the hidden problem or effectively hiding the complexity. In contrast to comparison of programming languages it is more appropriate to compare the programming paradigm. Programming paradigms include procedural languages includes c, pascal etc, object oriented programming languages C++, Java etc and scripting languages includes Python, Perl, Tcl, etc. Several distinct paradigms exist with specific objectives, benefits, and limitations. In this report the evolution of such paradigms and a comparison of programming languages within these paradigms are discussed. A programmer has to choose the right paradigm to solve his problem. No matter how powerful programming platform being used the issue is how appropriately a problem is hunted to be solved. 1.1 HIGH AND LOW LEVEL PROGRAMMING LANGUAGES On top of all programming languages can be initially discriminated into two groups i.e. high level and low level programming languages. Low level programming languages are more likely to work more closely with the hardware; however the high level programming languages are more towards application oriented and more focused to build high level application without going into details of Hardware issues. Low level languages plays significant role while developing applications running in a closer contact with the machine and need more freedom, more power, more efficiency, and absolutely direct contact with Hardware, which of course contributed into performance betterment. Indeed, working over low level languages like machine language or assemble demands a higher level of expertise and not every programmer (of high level language) guarantee to write good code on such languages. In contrast to low level languages, high level languages are friendlier to use, they provide several machine security measures, frameworks, GUI builders etc to facilitate a programmer to only concentrate over application development issues rather than got stuck into Hardware management issues. High level languages are easy to use and almost the first choice for the scientific development since the last two decades (Bebo, 1989). In the rest of the paper, only high level languages will be discussed in details and there will be no discussion over Low and High level languages. In the following section, a summary of some major paradigms (within high level languages) is presented with some of their specific features: 1. Procedural Languages 2. Object Oriented Languages 3. Scripting Languages 4. Parallel Languages 1.2 PROCEDURAL LANGUAGES Procedural languages are commonly speaking those languages which only work upon procedural approach. This is basically the way of thinking that makes any program a procedural code. No matter which powerful platform is being used, and whatever strong object oriented languages are used there is still a possibility that the code is procedural. The procedural approach is quite old and more towards a sequential approach. The program execution structure is based on sequential execution of code. Procedural approach reflects more towards process oriented system analysis and design. In process oriented approach a system is studied in context to processes. Each process further breaks into smaller processes. During the analysis and design phases it is important to identify the task that has to be processed by a process, its input and the output that are to be generated. Roughly speaking these processes are later on mapped into procedures with respective input and output data types. In the procedural approach it is very hard to reuse some piece of code because of its nature; however, in contrast Object Oriented programming languages provide great favor in terms of code reusability and extendibility. 1.3 OBJECT ORIENTED PARDIGM Object oriented languages provides systems’ solutions based on the object oriented paradigm like Java, C++, .Net, Ada, SmallTalk etc. Object oriented programming OOP languages offer objects, classes, inheritance, polymorphism, messages, and subtype etc (Aaby, Pg. 968). Object oriented approach is an entirely different programming approach as compare to procedural programming. Abstraction is being done by playing with objects. Every process has to be broken into inter object interactions. In OOP methodology a system is represented by interactions of objects and each object has to perform its own responsibility, after that, the responsibility is delegated to other objects. This delegation of responsibility is by means of messages. OOP facilitates several relationships between objects i.e. kind of and part of. These relationships are named as inheritance and composition. A class (i.e. type of an object) could be an extended type of another class (of course another object). This extension in functionality could be treated by two different ways that is code reusability and extendibility. Inheritance is one of the fundamental characteristic of OOP languages (Lippman, Pg. 391). However, seasoned programmer use inheritance relationship for dynamic binding or late binding purpose. This can be achieved by inheriting classes from a common class. At run time whichever object is instantiated it can be accessed through the base class reference. For e.g. all Suzuki cars objects are in fact are cars and can be accessed by base class reference etc. In OOP methodology the system analysis and design consists of the following steps: a. Object Identification: Identification of important objects from the given scenario is the first step in abstraction. Which objects should be used within the system and which should not ! is the result of this phase. b. Object type definition i.e. classes: Object definition or classes basically describe the objects. The class or object definition consist of properties/ attributes and behaviors/functions of the objects. Which attributes and behaviors are important is always challenging to identify. Furthermore, an object is using another object, what appropriate relationship should be used here? c. Inter object relations: Inter object relations are using and has relationship. Some times one object is a kind of other objects and some times one object uses the other object. 1.4 SCRIPTING LANGUAGES Over the last fifteen years scripting languages have proved their importance. Scripting languages include: shell, awk, Perl, TCL (Ousterhout J. , 1994), Python, PHP and others. To outline the classifier between the scripting languages and non-scripting languages is a bit difficult, however there are some characteristics which are important to be discussed: Scripting languages are interpreted or byte-code interpreted. Scripting languages are never compiled to native code. The memory management is done by the garbage collector instead of programmer High level data types are included by scripting languages like List, associative arrays and others Scripts (written in scripting languages) can access modules written in low-level languages like C. Some of the scripting languages do not have all these features like shell cannot access C language modules. However, it is a scripting language nonetheless. The main feature of scripting languages is their unique dynamic nature. They allow data to be treated as a program and vice versa. Scripting languages have been developed and used in a variety of application domains like character animation (Arafa Y., et. al, 2003) practical use of Python discussed in (Stein, 1997) The four different application areas for scripting languages: Command scripting languages: are from the oldest class of scripting languages. They appeared in 1960, a well known example from the first generation of such languages is JCL (Job Control Language) created for IBM OS/360. Recent example of such scripting languages is the shell language. Application scripting languages: developed in 1980s. Javascript belongs to this class of languages. JavaScript gained significant popularity for the implementation of client part of web based programming projects. Markup languages (discussed in detailed in the following section) Universal scripting languages: Perl is one of the universal scripting languages; it stands for Practical Extraction and Report Language. As is evident from the name, this language was designed for report generation. Perl is renowned for its capabilities when it comes to writing efficient and simplified CGI scripts in order to generate dynamic web pages. Python is another good example of universal scripting languages. Python was initially developed as a means to access Amoeba’s system services, however it evolved into a universal object oriented scripting language. Tcl is also one of the universal scripting languages but it depends a great deal on C and C++ extension modules 1.5 MARKUP LANGUAGES Markup languages are quite different from other languages. A markup language is a collection of tags that describe a text document such that when it is parsed by the browser, the browser arranges the text according to the values and specifications marked in the tags. The two best examples of markup languages are XML and HTML. HTML is restricted only to the development of web pages whereas XML can be used for any kind of data;moreover XML can be used to develop other markup languages like XML-RPC (used for remote processing calls), MathML (used for the representation of mathematical equations), SVG (used for vector graphics) and SMIL (used for multimedia content). XML was designed in accordance with the following objectives: a) XML documents should be human readable and easy to comprehend. b) XML development should be easy and simplified. c) Its compatibility with SGML will be ensured, d) XML will support a large variety of applications. e) It would be easier to write codes that can process XML documents. f) XML will be useable online. g) Optional features should be avoided as much as possible in XML. h) XML design should not be time consuming. 1.6 PARALLEL LANGUAGES With the advent of multi-core systems parallel languages has gained an attraction from programmers community quite significantly. Some of the widely use parallel languages are UPC, MPI, Star P and Titanium. There exist clear variations within the programming models, and memory abstraction of these languages. Unified Parallel C UPC (Marowka, 2004) is a parallel extension of C programming language designed for high performance computing. UPC is designed for common global address space (SMP and NUMA) and with distributed memory such as clusters. Message Passing Interface MPI is a message passing library. It takes the responsibility of providing concurrency, handling hand shaking and other issues during cluster development. It works upon distributed memory parallel programming model. 2. General history of programming languages A brief history and evolution of programming languages is presented in the following figure. 3. COMPARISON AMONG DIFFERENT PARADIGMS 3.1 MARKUP LANGUAGES AND SCRIPTING LANGUAGES Markup languages just provide syntax and ways for marking up the content, with metadata and ontologies. Metadata and ontologies describe a document or concept for the resources on the internet (Kuitunen P., Honkaranta A., 2008). However, in contrast to this, scripting languages are fully capable for application development. Specifically, scripting languages are widely used for managing client and server side codes in client-server architectures with the help of web server and application servers like IIS or Apache. Furthermore, markup languages like XML play an important role in providing interoperability between multiple applications. Concepts, objects and data transform into XML metadata forms and then are reused by any other platform for further execution. 3.2 COMPARISON BETWEEN PROCEDURAL PARADIGMS AND OOP PARDIGMS Both the programming paradigms have their own pros and cons, procedural programming languages follow step by step development of a code or sequential execution which combine together to function as a program in contrast OOP approach provides a higher level of abstraction. OOP methodology offers more reusability than procedural approach (Lewis, 91). Encapsulation of programs and data in OOP provides more reusability than procedural languages (Kim, Pg. 5) Furthermore, distribution of procedural codes over network based applications is a challenge and is now considered obsolete by most people. Most of the network/distributed applications use OOP methodology in which, only objects are supposed to communicate with each other without going into the details of either object. Java RMI, CORBA standards, .NET remoting all based on OOP methodology. However, remote procedure calls or RPC are being used in a very limited capacity. 4. REFERENCES Aaby Anthony (1996) Introduction to Programming Languages. eBook Lewis, J, et. al. (1991) An empirical study of the object-oriented paradigm and software reuse. ACM SIGPLAN, OOPSLA’91 Conference, vol 26 issue 11 Kim W. , Lochvosky F. (1989) Object-Oriented Concepts, Databases and Applications. ACM Press Frontier Series. Lippman S. (1991) C++ Primer. 2nd Edition Addison Wesley Publisher. Kuitunen P., Honkaranta A.(5 Jan 2008). Ontologies and metadata for E-Learning environments in Ecological and Environmental Science. Wseas Transaction on Advances in Engineering Education. Bebo White (April 1989) The Comparison and Selection of Programming Languages for High Energy Physics Applications. Conference on Computing in High-Energy Physics, Oxford. Marowka A. (2004), Analytic Comparison of Two Advanced C Language-Based Parallel Programming Models. Proceeding of the ISPDC /HetroPar’04, IEEE. Arafa Y. et, al. (July 2003) Character Animation Scripting Languages: A Comparison AAMAS’03, July 14-18, Melbourne Australia, ACM J. Ousterhout (1994) Tcl and Tk Toolkit, Addison-Wesley, ISBN 0-201-63337-X. Stein G. (1997) Case Study: Python in a Commercial Environment? Microsoft, Proceeding 6th International Python Conference 1997-10 Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(“Programming languages Comparison and History Research Paper”, n.d.)
Retrieved from https://studentshare.org/family-consumer-science/1412043-write-a-report-of
(Programming Languages Comparison and History Research Paper)
https://studentshare.org/family-consumer-science/1412043-write-a-report-of.
“Programming Languages Comparison and History Research Paper”, n.d. https://studentshare.org/family-consumer-science/1412043-write-a-report-of.
  • Cited: 0 times

CHECK THESE SAMPLES OF Programming languages Comparison and History

Unix vs Windows: The Ongoing Debate

UNIX and Windows are two major classes of operating systems who have enjoyed a competitive history and will enjoy a competitive future.... Brief history of Windows Windows is a first graphic based and user friendly operating system developed by Microsoft.... Unix Versus Windows: The Ongoing Debate The comparison between the two operating systems: UNIX and Microsoft Windows is still an ongoing debate with a lot of pros and cons associated with both the operating systems....
5 Pages (1250 words) Research Paper

Programming Language Ada 95

However, more than 450 programming languages were utilized to manage numerous working projects of Department of Defense but none of them was standardized.... HISTORY In 1970s, the United States DoD (Department of Defense) was worried due to a number of different programming languages being utilized for developing and managing its embedded systems and other computer system projects as well as most of them were outdated or hardware reliant and none of them allowed for safe modular programming....
9 Pages (2250 words) Report

History of a Technology or Specific aspect of Engineering

Name Professor Subject Date history of software engineering Problems and the need to solve them have made people to come up with ingenious strategies.... These factors have created a rich history and heritage regarding software engineering.... These four people had an idea of how programming would work, but never went to the extent of starting it off.... This was the first ever documented algorithmic programming language....
10 Pages (2500 words) Research Paper

Java Game Programming, any future

Java has become one of the powerful languages ever created and has become one of the leading languages being utilized in the industry of Information and Technology.... Legacy languages like C and C++ still remains to be the most preferred language for game developers.... The important difference between these two languages is that in Java, there are no pointers and hence the learning and understanding is easier in Java.... Basically designed for the improvement of network programming, Java has covered large areas in orthodox applications as well as distributed and embedded systems....
15 Pages (3750 words) Essay

Discussion Questions Week 3

This makes Java very flexible when compared to other programming languages.... ava is one of the most secure programming languages within the industry today.... Managers would know who her most productive employees are and track and compare current efficiency levels with the plant's history.... In comparison with other languages, Java applications typically used less code.... Although that creates challenges with finding the best Java programming solutions, open source unshackles creativity amongst programmers....
2 Pages (500 words) Essay

Greek Sublime by Chandra, V

The argument that the situation did not coincide is supported through the American syntactic theory where Chomsky in the theory directing Panini, formed the soil in which the computer languages raised.... handra in his argument on what coding begins what he refers to Sanskrit-speaking and writing acumen which came out in Afghanistan to Java and afterward through different kingdoms, cultures, and languages.... This report " Greek Sublime by Chandra, V" discusses the idea of programming and coding and the opinions of Chandra on the issue of coding....
8 Pages (2000 words) Book Report/Review

Principles of Digital Computing

The objective of this research under the title "Principles of Digital Computing" is the pursuance of the history of digital computation technology, its design, impacts, and its comparison in terms of advantages and disadvantages with analogue computing.... As a tribute to her invention, a programming language was named Ada after her name in the year 1979....
7 Pages (1750 words) Research Paper

Comparison of CORBA and Web Services

To discover where CORBA fits in, let's briefly introduce the history of distributed systems.... … A comparison of CORBA and Web ServicesAbstractIt is feasible that prior to discussing CORBA, one important concept we must know about it which is distributed systems.... Actually, Distributed systems have been in existence, in one form or another, for A comparison of CORBA and Web ServicesAbstractIt is feasible that prior to discussing CORBA, one important concept we must know about it which is distributed systems....
15 Pages (3750 words) Essay
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us