Programming Language Preliminaries

Programming Language Preliminaries
 
Introduction
 
Some reasons why computer science students and professional software developers should study general concepts of language design and evaluation. This discussion is valuable for those who believe that a working knowledge of one or two programming languages is sufficient for computer scientist.
 

PROGRAMMING = Development + Maintenance + Documentation
 
Increased Capacity to Express Ideas – a limited grasp of natural language, are limited in the complexity of thought and depth of abstraction. It is difficult to conceptualize structures we cannot describe, verbally or in writing.
 
Improved Background for Choosing Appropriate Language – problems on training received in the distant past. Familiarity of other languages and their features provide a better position to make informed language choices.
 
Increased Ability to Learn A New Language – software development entails continuous learning. Once a thorough understanding of the fundamental concepts of languages are acquired, it is easier to see how these concepts are incorporated into the design of the language being learned.
 
Understanding of the Significance of Implementation – leads to an understanding of why languages are designed the way they are. It allows us to visualize how a computer executes various language constructs.
 
Increased Knowledge in Designing New Languages – a critical examination of programming languages will help in the complex systems and will help users examine and evaluate products.
 
Overall Advancement In Computing – finally, there is s global view of computing that can justify the study of programming language concepts.
 

Programming Domains
 
Computer have been applied to a myriad of different areas, from controlling nuclear power plants to storing the records of personal data. Because of this great diversity in computer use, programming languages with very different goals have been developed.
 
Scientific Application – scientific application have simple data structures but requires large number of floating-point arithmetic computations. The most common data structures are arrays and matrices; the most common control structures are counting loops and selections. The high level programming languages invented for scientific application were designed to provide for those needs.
 
Business Application –  business languages are characterized by facilities for producing elaborate reports, precise way of describing and storing decimal numbers and character data, and the ability to specify decimal arithmetic operations.
 
Artificial Intelligence – AI is broad area of computer applications characterized by the use of symbolic rather than numeric computations. Symbolic computation means that symbols, consisting of names rather than numbers, are manipulated.
 
Systems Programming – the operating system and all of the programming support tools of a computer system are collectively known as its systems software. Systems software is used  almost continuously and therefore must be efficient.
 
Scripting Languages – scripting language were used by putting a list of commands, called a script, in a file to be executed.
 

Programming languages should be evaluated in terms of their features and the impact on the software development process, including maintenance.

LANGUAGE design criteria are weighed differently from different perspective. Language implementers are concerned primarily about the difficulty in implementing the constructs and features of the language. Language users are worried about writability first and readability later. Language designers are likely to emphasize elegance and the ability to attract widespread use.
 
 
Evolution of Programming Languages
 
Chronologically the development of a collection of a programming languages, exploring the environment in which each was designed and focusing on the contributions of the language and the motivation for its development
 
 
Zuse’s Plankalkül
 
Historical Background
 
Between 1936 and 1945, the German scientist Konrad Zuse built a series of complex and sophisticated computers from electromechanical relays. By 1945, the war had destroyed all but one of his later models, the Z4. Working alone embarked on an effort to develop a language for expressing computations. He named this language Plankalkul, which means program calculus.  Zuse defined Plankalkul and wrote algorithms in the language for a wide variety of problems.
 

Language Overview

Plankalkul was remarkably complete, with some of its most advanced features in the area of a data structures. The simplest data types ijn Plankalku was the single bit. One of the most interesting features of Zuse’s programs was the inclusion of mathematical expressions showing relationship between program variables.
 
 
IBM 704 and Fortran

Historical Background
 
The announcement of the IBM 740 system, with both indexing and floating-point instruction in hardware, heralded the end of the interpretive era, at lest for scientific computation. Fortran is often with being the first compiled high-level language.
 
Design Process
 
The IBM 704 system was announced in May 1954, plan were begun for Fortran. By November 1954, John Backus and his group at IBM had produced the report “The IBM Mathematical Formula Translating System: Fortran”.
 
Language Overview
 
Fortran was modified during the implementation period, which began in January 1955 and continued until the release of the complier in April 1957. There are different version of Fortran; Fortran I (1957), Fortran II (1958), Fortran III (Never Distributed), Fortran IV (1960), Fortran 77 (1978), Fortran 90 (1992), and Fortran 95 (1997).
 
Evaluation

The original Fortran design team thought of language design only as a necessary prelude to the critical task of designing the translator. The effect that Fortran has had on the use of computers, along with the fact that all subsequent programming languages owe a debt to Fortran, are indeed impressive in light of the modest goals of its design.
 
 
Functional Programming: LISP
 
Historical Background
 
Interest in AI appeared in the mid-1950s in a number of places. Mathematician were interested in mechanizing certain intelligent processes, such as  theorem proving. The concept of list processing was developed by Allen Newell, J.C. Shaw and Herbert Simon.
           
Design Process
 
John Mc Carthy of MIT took summer position at the IBM Information Research Department in 1985. His goal for the summer was to investigate symbolic computation and develop a set of requirements for doing such computations.
 
Language Overview
 
Pure LISP has only two kinds of data structures: atoms and list. Atoms are either symbols, which have the form of identifier, or numeric literals. List are specified by delimiting their elements with parentheses. Simple lists, in which elements are restricted to atom, have the form (A B C D).
 
Evaluation

LISP completely dominated AI applications for a quarter of a century. It is still the most widely used language for AI. During the 1970s and the early 1980s, a large number of different dialects of LISP were develop and used. This led to the familiar problem of portability.
 
 
The First Step Toward Sophistication: ALGOL
 
Historical Background
           
ALGOL 60 came into as a result of efforts to design a universal language. Furthermore, the new languages were all growing up around single architecture, some for UNIVAC computers and some for IBM700 series machines.
           
Design Process
 
During 1959, ALGOL 58 was furiously debated in both Europe and the US. Large numbers of suggested modifications and additions were published in the European ALGOL Bulletin and in Communications of the ACM.
 
Language Overview
 
The concept of block structures was introduced; Two different means of passing parameters so subprograms were allowed: pass by the value and pass by the name; Procedures were allowed to be recursive; Stack-dynamic arrays were allowed.
 
Evaluation

ALGOL 60 was a great success; in other ways, it was a dismal failure. It succeeded in becoming, almost immediately, the only acceptable formal means of communicating algorithms in computing literature, and it remained for over twenty years the sole language for publishing algorithms.    

 
The Beginning of Timesharing: BASIC
 
Historical Background
 
BASIC is another programming language that has enjoy widespread use but has gotten little respect. BASIC was very popular on microcomputers in the late 1970s and early 1980s. This followed directly from two of the main characteristics of BASIC. It is easy for beginner to learn, especially those who are not science oriented, and its smaller dialects can be implemented on computers with very small memories.
 
Design Process
 
BASIC (Beginner’s All –purpose Symbolic Instruction Code) was designed at Dartmouth College(now University) in New Hampshire by John Kemeny and Thomas Kurtz. The goal of the system were; It must be easy for nonscience students to learn and use; It must be pleasant and friendly; It must provide fast turnaround for homework; It must allow free and private access; It must consider user time more important that computer time.
 
Language Overview
 
The original version of BASIC was very small and oddly, was not interactive: there was no means of getting input data from the terminal. Programs were typed in, compile, and run, in a sort of batch-oriented way.
 
Evaluation
 
The most important aspect of the original BASIC was that it was the first widely used language that used through terminals connected to a remote computer. Terminals had just begun to be available at that time. The most probable reasons for BASIC’s success are the ease with which it can be learned and the ease with which it can be implemented, even on very small computers.
 
 
 Everything for Everybody: PL/I
 
Historical Background
 
Like Fortran, PL/I was developed as an IBM product. By early 1960s, the users of computers in industry had settled into two separate and quite different camps. From the IBM point of view, scientific programmers could use either the large scale 7090 or the small 1620 IBM computers. PL/I represent the first large-scale attempt to design a language that could be used for a broad spectrum of application areas.
 
Design Process
 
The design effort began when IBM and SHARE formed the Advanced Language development Committee of the SHARE Fortran Language Project in 1963. The initial design concepts was that the new language would be an extension of Fortran IV, maintaining compability, but that goal was dropped quickly.
 
Language Overview

Programs were allowed to create concurrently executing subprograms. Although this was a good idea, it was poorly developed in PL/I; It was possible to detect and handle 23 different types of exceptions, or run-time errors; Procedure were allowed to be used recursively, but the capability could be disabled, allowing more efficient linkage for nonrecursive procedures; Pointers were included as a data types; Cross sections of arrays could be referenced.
 
Evaluation
 
Any evaluation of PL/I must begin by recognizing the ambitiousness of the design effort. Overall, the design of PL/I was based on the premise that any construct that was useful and could be implemented should be included. In term of usage, PL/I must be considered at least a partial success. In the 1970s, it enjoyed significant use both business and scientific application.
 
 
APL: A Programming Language
 
Historical Background
 
APL was designed around 1960 by Kenneth E. Iverson at IBM. It was not originally designed to be an implemented programming language, but rather was intended to be a vehicle for describing computer architecture.
 
Design Process
 
APL has a large number of powerful operators, which created a problem for implementers. The first means of using APL was through IBM printing terminals.
Language Overview
 
One reason APL has so many operator is that it allows arrays to be manipulated as if they were scalar variables.
 
Evaluation
 
APL has been around for 40 years and is still used today, though not widely. Furthermore, it has not changed a great deal over its lifetime.


SNOBOL
 
Historical Background
 
SNOBOL was designed in the early 1960s by three people at Bell Laboratories: D.J Farber, R.E. Griswold and F.P. Polebsky. It was design specifically for text processing.
 
Design Process
 
The heart of SNOBOL is a collection of powerful operation for string pattern matching. One of the early applications of SNOBOL was for writing text editors.
 
Evaluation

SNOBOL makes it slower than some other languages, it is no longer used for such programs. However, SNOBOL is till a live and supported language is used for a variety of text processing tasks in a number of different application areas.

 
The Beginning of Data Abstraction: SIMULA 67
 
Historical Background
 
Two Norwegians, Kristen Nygaard and Ole-Johan Dahl, developed the language SIMULA I between 1962 and 1964 at Norwegian Computing Center.

Design Process
 
SIMULA I was design exclusively for system simulation and was first implemented in the late 1964 on a UNIVAC 1107 computer.
 
Language Overview
 
SIMULA 67 is an extension of ALGOL 60, taking both block structure and the control statements from that language.
 

Evaluation
 
To provide support for coroutines in SIMULA 67, the class construct was developed. This was an important development because the concept of data abstraction began with it.
 
 
Orthogonal Design: ALGOL 68
 
Historical Background
 
The development of ALGOL family did not end when the revised report appeared in 1962. ALGOL 68 was the source of several new ideas in language design, some of which were subsequently adopted by other languages.
 
Design Process
 
One of the most interesting innovations of ALGOL 68 was one of its primary design criteria: orthogonality.
 
Language Overview
 
One important result of orthogonality in ALGOL 68 was its inclusion of user-defined data types. The approach of ALGOL 68 to data structures was to provide a few primitive types and structure and allow the user to combine those primitives into a large number of different structures.
 
Evaluation

ALGOL 68 includes a significant number of feature that had not been previously used. Its use of orthogonality, which some may argue was overdone, was nevertheless revolutionary.

 
C Language
 
Historical Background
 
C’s ancestor include CPL, BCPL, B and ALGOL 68. CPL was developed at Cambridge University in the early 1960s. BCPL is a simple systems language developed by Martin Richards in 1967.
 
Design Process
 
Originally called NB but later named C, it was designed and implemented by Dennis Ritchie at Bell Laboratories in 1972. in some cases through BCPL, and other case directly, C was influenced by ALGOL 68.
 
Language Overview
 
In 1989, ANSI produced an official description of C (ANSI, 1989), which included many of the feature that implementers had already incorporated into the language. This standard was updated in 1999. This new version, which has long been called ANSI C should now be called C89; refer to the 1999 version as C99.
           
Evaluation
 
C has adequate control statement and data-structuring facilities to allow use in many application areas. It also a rich set of operators that provide high degree of expressiveness.
 
 
History’s Largest Design Effort: Ada
 
Historical Background
 
By 1974, over half of the applications of computers in Department of Defense (US) were embedded systems. An embedded system is one in which the computer hardware is embedded in the device it controls or for which it provides services (form 1974 to 1995).
 

Design Process
 
Its initial charter was to: Identify the requirements for a new DoD high-level language; Evaluate existing languages to determine whether there was a viable candidate; Recommend adoption or implementation of a minimal set of programming languages.
 
Language Overview
 
Packages in the Ada language provide the means for encapsulating data objects, specifications for data types and procedures. Ada also includes extensive facilities for exception handling, which allow the programmer to gain control after an one of a wide variety of exceptions, or run-time errors.
 
Evaluation

Perhaps the most important aspect of the design of the Ada language to consider are the following: Because the design was competitive, there was no limit on participation; The Ada language embodies most of the concepts of software engineering and language design of the late 1970s; Although many people did not initially realize it, the development of a compiler for the Ada language was a difficult task.

 
Object-Oriented Programming: Smalltalk
 
Historical Background
 
The concepts that led to the development of Smalltalk originated in the Ph.D. dissertation of work of Alan Kay in the late 1960s at the University of Utah. Kay had remarkable foresight in predicting the future availability of powerful desktops computers.
 
Design Process
 
Kay believed that desktop computers would be used by non programmers and thus would need very powerful human interfacing capabilities. The computers of the late 1960s were largely batch-oriented and were exclusively by professional programmers and scientist.
 
Language Overview
 
The program units of Smalltalk are objects. Objects are structures that encapsulate local data and a collection of operations called methods that is available to other objects. Smalltalk is a simulation of a collection of computers (objects) that communicate with each other (through message).

Evaluation

        
Smalltalk has done a great deal to promote two separate aspects of computing. The windowing systems that are now the dominant method of user interfaces to software system grew out of Smalltalk.
 
 
Comparative Study on Programming Languages’ Categories
 
Introduction
           
Today, software takes on a dual ole. It is a product, and at the same time, the vehicle for delivering a product. Software delivers what many believe will be the most important product of the twenty-first century – information. software transform personal data so that data can be more useful in a local context; it manages business information to enhance competitiveness; it provides a gateway to worldwide information network; and it provides the means for acquiring information in all of its forms.
 
 
Imperative Programming LanguagesPascal
 
Introduction
 
“Once a person understood the way variables are used in programming he has understood the quintessence of programming”. This is according to E.W. Dijkstra, which is a fact in Pascal Programming. Pascal is a high-level, general purpose programming language. When we say Pascal being a general purpose programming language, we mean that it is suitable for a diverse range of applications.
 
Historical Background
 
The Pascal language was develop by Professor Niklaus Wirth and his colleagues at the Eidgenossihce Techhnische Hocschule in Zurich, Switzerland during the late 1960’s and early 1970’s. It was after Blaise Pascal, a French mathematician, engineer scientist and religious philosopher. Many of the concepts and construction used in Pascal trace their ancestry to the Algol programming language develop at the early 1960’s.
 
Design Process
 
Compiler – is a program that takes program statements written in a computer language and rephrases then into instruction that the PC’s microprocessor understands. By using these standard machine-language building blocks and enforcing some simple rules of grammar, a compiler can effectively and efficient convert a human-oriented high-level language such as Pascal to machine- readable, executable code.
 
Language Overview
 
With designed Pascal to be a good first programming language for people learning to programming. As such, Pascal has a relatively small number of concepts to learn and digest. It has a design that the facilities the writing of programs in a style is now accepted as good standard programming practices. Pascal is a language with a run-time structure. A Pascal program always formed a single main program block, which contains its definitions of the subprograms used.
 
Evaluation
 
Pascal programming therefore, being one of the best programming language is commonly used to write programs for a wide variety of applications, including programs for numeric scientific calculations, for business data processing, and for text editing, as well as various systems programs, including compilers. Likewise, Pascal programming is easy to learn when learning it in a computer program.
 
 
Data Processing ApplicationsCOBOL
 
Introduction
 
The story of COBOL is strange indeed. Although it has been used more than any other programming language, COBOL has had little effect on the design of subsequent languages. It may still be the most widely used language, although it is difficult to be sure one way or the other.
 
Historical Background
 
 The beginning of COBOL is somewhat similar to ALGOL 60, in the sense that the language was designed by a committee of people meeting for relatively short periods of time. The state of business computing at the time, which was 1959.
 
Design Process

COBOL as defined in the original specification, possessed excellent self-documenting capabilities, good file handling methods, and exceptionally good data typing for the time, owing to its use of the PICTURE clause for detailed field specification. However by modern standards for programming language definition, it had serious flaws, notably verbose syntax and lack of support for local variables, recursion, dynamic memory allocation, and structured programming.
 
Language Overview

COBOL is a word coined from the phrase “common business oriented language”. As the phrase implies, it is language primarily designed for use in the processing of business data.  COBOL is designed to make use of the regular business data processing vocabulary to the greatest extent possible. One of the objectives of the creators of COBOL is to develop a programming language, which will be usable on the equipment of any manufacturer.
 
Evaluation

The COBOL language originated a number of novel concepts, some of which eventually appeared in other languages. Overall, the data division is the strong part of COBOL’s design, whereas the procedure division is relatively weak. Every variable is defined in detail in the data division, including the number of decimal digits and the location of the implied decimal point.

 
Artificial Intelligence LanguagesProlog
 
Introduction
 
Prolog is a logic programming language whose syntax is a modified version of predicate calculus. Prolog stands for “PROgramming LOGic”. Logic Programming – programming that uses a form of symbolic logic as a programming language.
 

Historical Background
 
Development of Prolog began in 1970’s, by Robert Kowalski at the University of Edinburgh is a researcher in artificial intelligence along with Alain Colmerauer and Philippi Russel at the university of Aix-Marseilles develop the fundamental design of Prolog. It was develop in Marseilles, France in 1972. the development of Prolog research effort in logic programming received limited attention outside of Edinburgh and Marsseilles until the announcement in 1981 that the Japanese government was launching a large research called the fifth generation computing system (FGCS). One of the primary objectives of the project was to develop intelligence machines and Prolog was chosen as the basic for this effort.           
 
Design Process
 
The primary components of Prolog are a method for specifying predicate calculus propositions and an implementation of a restricted form of resolution.
           
Language Overview

Prolog programs consist of collections of statements. Prolog has only a few kinds of statements, but they can be complex.
 
Evaluation
 
In the 1980, there was a relatively small group of computer scientist who believed that logic programming provided the best hope for escaping from the imperatives languages, and also from the enormous problem of producing the large amount of reliable software that is needed.
 

Object-Oriented ProgrammingC++ and Java
 
The C++ Language
 
Introduction
 
C++ improves on many C’s features and provides object-oriented programming capabilities that hold great promise for increasing software productivity, quality, and reusability.
 
Historical Background
 
The first step from C toward C++ made by Bjarne Stroustrup at Bell Laboratories in 1980. modification include the addition of function parameter type checking and conversion and more significantly, classes, which are related to those SIMULA 67 and Smalltalk.
 

Design Process
 
By 1984, this language was extended by the inclusion of virtual methods, which provide dynamic binding of method calls to specific method definitions; method name and operator overloading; and references types. Between 1985 and 1989, C++ continued to evolve, based largely on user reactions to the first distributed implementation.
 
Language Overview
 
C++ provides twp constructs that defines types, classes and structs, with little difference between the two. Because C++ allows both functions and methods, it supports both procedural and object-oriented programming. C++ includes exception handling that is significantly different. One difference is that hardware-detectable exception cannot be handled.
 
Evaluation
 
C++ rapidly became and remain a very popular language. One factor in its popularity is the availability of good and inexpensive compilers. Another factor in favor of C++ is that it is almost completely backward compatible with C. finally, at the time object-oriented programming began to receive widespread interest, C++ was the only language that was available that was suitable for large commercial software projects.
 
 
The Java Language
 
Introduction
 
Java is another object-oriented programming language. Java, the unit of programming is the class from which objects are eventually instantiated. Java programmers concentrate on creating their own user-defined types called classes. Classes are also referred to as programmer-defined types. Each class contains data as well as the set of methods that manipulate the data.
 
Historical Background
 
The Java design team was headed by James Gosling, who had previously designed the UNIX emacs editors and the NeWS windowing system. Java, like many programming languages, was designed for application for which there appeared to be no satisfactory existing language; in the case of Java, however, it was actually a sequence of applications.
 
Design Process
 
In 1990, sun Microsystems decided that neither of the two programming language they considered, C and C++, would be satisfactory for developing software for consumer electronic devices. It was also believed that neither C nor C++ provided the necessary level of reliability. The of Java was guided by the fundamental goal of providing greater simplicity and reliability than they believed were provided by C++.
 
Language Overview
 
Java is based on C++ but was specifically designed to be smaller, simpler, and more reliable. Java has both classes and primitive types, which are not objects on classes, as does C++. One significant difference between Java and many of its contemporaries that support object-oriented programming. Another important difference between C++ and Java is that ++ support multiple inheritance directly in its class definitions.
 
Evaluation
 
The designer of Java did well at trimming out excess and/or unsafe features of C++. Java’s portability at least intermediate form, has often been attributed to the design of the language, but it is not. The use of Java increased faster than that any other programming languages. Java is now widely used in a wide variety of different applications areas.
 
 
Component-Oriented ProgrammingC#
 
Introduction
 
The .NET platform is the foundation upon which the next generation of software will be built. Microsoft has invested a lot of capital in its development, and is putting its considerable weight behind its adoption as a new standard. The .NET platform is much more than a new language, software development kit (SDK), or even an operating system. It offers powerful new services, a new processor-independent binary format, new managed languages, managed language extensions to existing languages, and the list goes on.
 
Historical Background
           
C#, along with the new development platform .NET was announced by Microsoft in 2002. in January, 2002, production version of both were released. C# is based on C++ and Java, but includes some ideas from Delphi and Visual Basic. Its leads designer, Anders Hejlsberg, also designed Turbo Pascal and Delphi, which explain the Delphi parts of the heritage of C#.
 
Design Process
 
The purpose of C# is to provide a language for component-based software development, specifically for such development in the .NET Framework. In this environment, components from a variety of languages can be easily combined to form systems.
           
Language Overview
 
Many believe that one of Java’s most important advances over C++ lies in the fact that it excludes some of C++’s features. The designer of C# obviously disagreed with this wholesale removal of features, for all of these except multiple inheritance have been brought back in the new language.
 
Evaluation
 
C# was meant to be an advance over both C++ and Java as a general purpose programming language. Although it can argued that some of its features are a step backward, C# clearly includes some constructs that more it beyond its predecessors. The primary intended application of C# is as the main language in the .NET environment. It is far too early to say with any certainty that C# will succeed in attracting a large numbers of users.
Primitive Data Types, Sizes, and Descriptions
 
 
Scripting and Markup LanguagesJavaScript and HTML
 
JavaScript
 
Introduction
 
JavaScript is a compact, object-based scripting language for developing client and server Internet applications. Netscape Navigator interprets JavaScript statements embedded in an HTML page, and LiveWire enables you to create server-based applications similar to Common Gateway Interface (CGI) programs.
 
Historical Background
 
JavaScript , which was originally named LiveScript, was developed at Netscape. In late 1995, LiveScript became a venture of Netscape and Sun Microsystems and its name was changed to JavaScript.
 
Design Process
 
 JavaScript has gone through extensive evolution, moving from version 1.0 to 1.5 by adding many features in the 1990s by the European Computer Manufactures Associations. This standard has also been approved by the ISO as ISO-16262. Microsoft’s version of JavaScript is named JScript.
 

Language Overview

JavaScript interpreter could be embedded in many different applications, its most common use is as an HTML-embedded client-side scripting language, whose primary use in Web programming is to create dynamic HTML documents. JavaScript is related to Java only through the use of similar syntax.
 
Evaluation
 
Perhaps the most important use of JavaScript is in dynamically creating and modifying HTML documents. JavaScript defines an object hierarchy that matches a hierarchical model of an HTML document. JavaScript is now widely used tool for Web programming.
 
 
HTML
 
Introduction
The frantic pace of progress on the Internet has slowed considerably in recent years as the medium has started to mature. As part of the Internet, the World Wide Web is the predominant force in the growth of the global computer network. Its language, much richer than a few years ago, is still quite simple. HyperText Markup Language (HTML) is the language that puts the face on the Web. It consists of a variety of elements called tags, which are used for everything from defining a title to outlining a frame, from creating headings to inserting line breaks, from inserting an image to including a custom Java applet.

Historical Background

The World Wide Web is actually just one of many applications that run on the Internet, a worldwide network of computer networks (or internetwork) that has been around in one form or another since 1961. Though relatively new in human terms, the Web has a venerable genealogy for a computing technology. It can trace its roots back over 35 years, which is more than half the distance back to the primordial dawn of the electronic computing age.

Design Process

By the mid-1970s, many government agencies, research facilities, and universities were on this internetwork (which was then called ARPAnet), but each was running on its own internal network developed by the lowest bidder for their specific project. For example, the Army’s system was built by DEC, the Air Force’s by IBM, and the Navy’s by Unisys. All were capable networks, but all spoke different languages. What was clearly needed to make things work smoothly was a set of networking protocols that would tie together disparate networks and enable them to communicate with each other.

Language Overview

There were a plethora of different data-indexing and retrieval experiments in the early days of the Net, but none was all-pervasive until, in 1991, Paul Lindner and Mark P. McCahill at the University of Minnesota created Gopher. Though it suffered from an overly cute (but highly descriptive) name, its technique for organizing files under an intuitive menuing system won it instant acceptance on the Net. The direct precursor in both concept and function to the World Wide Web, Gopher lacked hypertext links or graphic elements. Although Gopher servers sprung up quickly all over the Internet, it was almost immediately apparent that something more was needed.

Evaluation

HTML is a markup language, which means that Web pages can only be viewed by using a specialized Internet terminal program called a Web browser. In the beginning, the potential was there for the typical computing “chicken and the egg problem”: no one would create Web pages because no one owned a browser program to view them with, and no one would get a browser program because there were no Web pages to view.
 

Summary
 
The study of programming languages is valuable for a number of important reasons: it increase our capacity to use different construct in writing  programs, enables us to choose language for projects more intelligently, and makes learning new languages easier.

Computers are used in a wide variety of problem-solving domains. The design and evaluation of a particular programming language is highly dependent on the domain in which it is to be used.

Among the most important criteria for evaluating languages are readability, writability, reliability and overall cost. These will be the basis on which we examine and judge the various languages.

A programming environment is the collection of tools used in the development of software. This collection may consist of only a file system, a text editor, a linker, and a complier. Or it may include a large collection of integrated tools, each accessed through a uniform user interface.
 
The major methods of implementing programming languages are compilation, pure interpretation and hybrid implementation.
 
Programming environments have become important parts of software developments systems, in which the language is just one of the components.

References
 


Concepts of Programming Language
Robert W. Sebesta
Addison-Wesley Publishing Com.
Menlo Parl, CA
6th Ed. Copyright 2004
 

Programming Languages: Structures and Models
Herbert L. Dershem and Micheal J. Jipping
PWS Publishing Company, Boston, MA
2nd. Ed. Copyright 1995
 
 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: