High-Level Languages (22 of the many)
Language Level
|
Sample Code
|
Translator
|
Programmer's Perspective
|
Computer's Perspective
|
Machine
|
+1300042774
+1400593418
+1300284020
|
None
|
Slow, tedious, error-prone
|
Natural language
Only language the computer understands
|
Assembly
|
LOAD BASE
ADD OVER
STORE GROSS
|
Assembler
|
English-like abbreviations, easier to understand. Single
statement to single result
|
Assemblers convert code to machine's natural language
|
High-Level
|
Gross =
Base + Over
|
Compiler
|
Resembles everyday English, Single statement to multiple results
|
Compilers convert code to machine's natural language
|
Elegance and generality in
language design were goals of Algol (algorithmic
language). John Backus, a principal designer of Fortran,
and Peter Naur, developed it. These individuals also were part of an
international team that developed the precise notation for describing syntax
that we now call BNF. They used BNF to describe the syntax of Algol.
The elegance of Algol lay in
its generalized language structures that were no longer tied to any particular
machine architecture. Algol introduced machine-independent control structures
such as if-then-else constructs and while loops. Algol also
introduced hierarchical structures as a way to organize code.
Assembly
The use of mnemonics that are associated with
the numerical codes (HLT for halt, LD for load, ST for store , ADD for addition,
etc.)
COBOL
Though the first uses of
computers were for science and engineering, data-processing applications soon
began to emerge. Grace-Murray Hopperin the
late 1950's invented a programming language called FLOW-MATIC that was the first
business-oriented programming language. FLOW-MATIC was the basis for the
development of the more famous COBOL(Common
Business Oriented Language).
Researchers at Bell Labs
developed C,
so called because it succeeded the language BPML, as a systems programming
language. Its design emphasizes efficiency and flexible control over the
resources of the machine. Cis sometimes referred to as a "structured assembly language".
Unlike standard Pascal
, Cprovides access to machine addresses and binary,
bit
-manipulating instructions.
As such, it is considered (by some) to be a dangerous programming language for
beginners.
Despite the popularity of the
above languages, users began to notice their flaws. While elegant control
structures preserved a correspondence between static code and dynamic behaviors,
the same could not be said for data. For one thing, these languages encouraged
the use of global variables. These observations led to the development of the
Modula
and Adalanguages. These languages introduced modules or packages, units
that more carefully limit access to data and associated operations.
BASIC
The name stands for
Beginner's All-Purpose Symbolic Instruction Code. It quickly became the language
of choice for hands-on education. It was used as the operating system for Bill
Gates' first computer, the Altair. When Windows arrived,
programmers had great difficulty in providing a workable interface. Visual Basic was developed to
overcome this problem.
C++
When Bjarne Stroustrup came
to Bell Labs from Sweden in the late 1970's, he decided to incorporate some of
the best ideas of the Simula
programming language onto the Clanguage.
C
++ is a hybrid language. It
preserves all of the capabilities of C,
but provides ways to make the language less obscure and more secure. C
++ adopts Simula's
support for classes and object orientation.
For backward compatibility,
it gives the user the option of using the object-oriented approach. All of the
capabilities of C are maintained.
C#
Microsoft appears to be ready to
give up on its
efforts to be a Java language vendor and is substituting a
new language of its own, C Sharp, that captures some of Java's precision and
productivity features.
If not an answer to Java,
Microsoft hopes its new language will at least stop the tide of programmers in
that direction from C and C++, traditional strongholds of Microsoft with its
Visual C and Visual C++ products.
The version of C++ following version 6.0 is called C++.Net.
You can install
Visual C++ .NET on a computer that is running Visual C++ 6.0 and use both,
system requirements permitting. The current head of the Microsoft C++
development effort, Herb Sutter, was recently (from Internet site May 2002) "Do
you really believe that .NET is good for C++? Why? His answer is given below.
I do. I'm hopeful that it can contribute
something valuable, perhaps even beyond Windows-based platforms.
Here's a for-instance: Within the
standards committee and the standards process, I've seen several key recurring
questions and wishes since C++98 was passed. Three of them are: a) "what about
standardizing thread support?"; b) "what about compiling C++ to the JVM?"; and
c) "what about a portable GUI library, something basic that will help with
teaching?" I think it's very interesting that .NET provides all three, and more,
and that it makes those things available to C++ programs. In particular, well
before I had any idea I would come to Microsoft, I'd thought that .NET was "a
better JVM" (plus a lot more of course). If we could get better convergence
between "Managed C++" and "Standard C++," which is something that the team as a
whole and Stan Lippman in particular are working on right now, this whole thing
could get really interesting and there might be some useful standard technology
to offer here someday if the C++ committee wants any parts of it. I'm saying
that with my "committee-member" hat on, not my "Microsoftie" hat on.
After all, this very possibility is one
of the cool ideas that hooked me into wanting to participate with Microsoft and
see what I could be part of contributing to the committee and the community,
because like everyone else I've been looking for answers to those same three
questions, and here's a technology that's already being standardized (in ECMA
and soon ISO), and look, it works with C++! Well, with a lot of C++, anyway.
We'll have to see how it goes, though. I don't think it's any shape yet to
submit it; we'd pretty much have to be able to run nearly all of Standard C++ on
.NET just to have a proof-of-concept starting point that the committee would be
interested in. It's a goal. We want to contribute where we can.
But C++ developers on all platforms wants
these kinds of things - threads, running on a VM, a managed GUI library.
Windows-based developers have a lot of it today, and I know that the Visual
Studio .NET team are working hard to make it better so that you don't have to
give up so much of Standard C++ to get those benefits.
The only language the
computer understands. It consists of 0's and 1's (the binarysystem). In some cases memory addresses will be printed in
hexadecimal format to make them easier to read.
The Methuselah of the family.
The name stands for Formula Translation. A major goal of the IBM computer
scientists who developed it was to convince programmers, unwilling to waste
precious computer time, to use a compiler
at all. The emphasis was on efficiency, which kept the language close to machine
code.
Sticking close to the
machine, however, made for code that still resembled machine code, not in its
syntax, but in its flow of control. Much use was made of "goto" instructions
that compiled directly to primitive branch instructions.
Pascal
ALGOLbegan a number of ALGOL
-like languages in the late
60's including C
and Pascal
, each of which introduced
new features. Nicklaus Wirth designed Pascal
, naming it after the 17th
century mathematician.
Intended as a teaching
language, Pascal
emphasizes simplicity, security, and structure in its design. It was the
language of the Advanced Placement Computer Science program through 1998. At
that time, it was replaced with C++.
Simula
A high-level language
developed in Sweden. As the name implies, it was designed for implementing
simulations of objects and their behavior.
Objective Cand Eiffel
Other object-oriented languages
Smalltalk
Provided impetus for the
object-oriented approach and associated developments such as Windows-based
programming environments.
Algol
Based on Alonzo Church's
lamda calculus, was the first
language to support functional programming, or programming by combining
functions.
Prolog
Prolog (Programming in Logic)
is a language centered around a small set of basic mechanisms, include pattern
matching, tree-based data structuring and automatic backtracking. It is used
extensively in AI.
Pearl
The name PEARL stands
for Process and Experiment Automation
Realtime Language and must not be mistaken for
Perl, the Practical Extraction and Report Language.
PEARL is a higher
programming language, which allows a comfortable, secure and almost processor
independent programming of multitasking- and realtime problems and has been
standardized since 1977 at various stages of its development, the last time 1998
as PEARL-90 (DIN 66253-2 1998, Berlin, Beuth-Verlag, 1998).
Besides the simple
possibility to map process technical problems, an important principle at the
development of PEARL was the easy learning by the programmer. Everyone who
already knows a procedural programming language will get acquainted with PEARL
in a very short time.
Python
Python is an interpreted,
interactive, object-oriented programming language. It is often
compared to Perl, Scheme, and
Java.
Python combines power
with clear syntax. It has modules, classes, exceptions, very high level dynamic
data types, and dynamic typing. There are interfaces to many system calls and
libraries, as well as to various windowing systems. New built-in modules are
easily written in in C or C++. Python is also usable as an extension language
for applications that need a programmable interface.
The Python implementation
is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, and
Amiga.
Visual Basic.Net
Visual Basic .NET is the next version of Visual
Basic. Rather than simply adding some new features to Visual Basic 6.0,
Microsoft has reengineered the product to make it easier to write distributed
applications such as Web and enterprise n-tier systems. Visual Basic .NET has
two new forms packages (Windows Forms and Web Forms); a new version of ADO for
accessing disconnected data sources; and streamlined language, removing legacy
keywords, improving type safety, and exposing low-level constructs that advanced
developers require.
With Web Forms and ADO .NET, the developer can
rapidly develop scalable Web sites; with inheritance, the language now truly
supports object-oriented programming; Windows Forms natively supports
accessibility and visual inheritance; and deploying your applications is now as
simple as copying your executables and components from directory to directory.
Visual Basic .NET is fully integrated with the other
Microsoft Visual Studio .NET languages. Not only can you develop application
components in different programming languages, classes can now inherit from
classes written in other languages using cross-language inheritance. With the
unified debugger, you can debug multiple language applications, irrespective of
whether they are running locally or on remote computers.
It incorporates object-oriented constructs,
such as inheritance, structured exception handling, and parameterized
constructors.
The program requires either the Microsoft
Windows 2000 or Windows XP operating systems.
Java
The roots of Java can be traced to an effort by Bill Joy, Sun Microsystems, in
the 1980s to rewrite the Unix operating system. The effort switched to a project
called Stealth. Stealth’s mission was to research the application of computers
in the consumer electronics market. They needed to be centrally controlled and
able to work on various systems. The eventual goal, attributed to James Gosling,
was to build a large and distributed heterogeneous network of consumer
electronic devices that could talk to each other.
*Gosling was given the task to identify or develop a language for the project. He
first began working with C but soon discovered that it was not adequate for the
task. A new language was developed with the stated attributes and that built on
the strengths of other languages He named the language Oak because of a large
oak tree outside his office. Sun then realized that a major market existed in
the Internet and ported Java for applications there. It has now become a very
powerful language for all applications ranging from applets to stand alone
applications.
J++ is a "Java" programming environment
developed by Microsoft. A problem is that since it incorporates many Windows
components it is not considered (by me and many others) true Java as developed
and maintained by Sun Microsystems.
Logo
LOGO was developed by a team at MIT in
the 1960s. It was originally designed to introduce children to programming
concepts and to develop better thinking skills that could be transferred to
other contests. It was supposed to be a language for the teaching of
mathematical ideas to children through computer programming. IT was intended to
be easy to learn, easy to use, easy to read, but also powerful and able to cope
with complex problems. It
was then discovered that LOGO extended
far beyond mathematical areas. The person who became the spokesperson for the
language was Seymour Papert. The slogan used for LOGO was "A language for
Learning".
Python
Python is an interpreted,
interactive, object-oriented programming language. It is often
compared Perl, Scheme, and
Java.
Python combines power
with clear syntax. It has modules, classes, exceptions, very high level dynamic
data types, and dynamic typing. There are interfaces to many system calls and
libraries, as well as to various windowing systems. New built-in modules are
easily written in in C or C++. Python is also usable as an extension language
for applications that need a programmable interface.
*The Python implementation
is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, and
Amiga.
Visual Basic.Net
Visual Basic .NET is the next version of Visual
Basic. Rather than simply adding some new features to Visual Basic 6.0,
Microsoft has reengineered the product to make it easier to write distributed
applications such as Web and enterprise n-tier systems. Visual Basic .NET has
two new forms packages (Windows Forms and Web Forms); a new version of ADO for
accessing disconnected data sources; and streamlined language, removing legacy
keywords, improving type safety, and exposing low-level constructs that advanced
developers require.
With Web Forms and ADO .NET, the developer can
rapidly develop scalable Web sites; with inheritance, the language now truly
supports object-oriented programming; Windows Forms natively supports
accessibility and visual inheritance; and deploying your applications is now as
simple as copying your executables and components from directory to directory.
Visual Basic .NET is fully integrated with the other
Microsoft Visual Studio .NET languages. Not only can you develop application
components in different programming languages, classes can now inherit from
classes written in other languages using cross-language inheritance. With the
unified debugger, you can debug multiple language applications, irrespective of
whether they are running locally or on remote computers.
It incorporates object-oriented constructs,
such as inheritance, structured exception handling, and parameterized
constructors.
The program requires either the Microsoft
Windows 2000 or Windows XP operating systems.