|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Alexei Syrovatkin
© 1996, 1997
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- ABC - is an interactive programming
language and environment for personal computing,
originally intended as a good replacement for BASIC. It
was designed by first doing a task analysis of the
programming task.
- Ada - is an advanced, modern
programming language, designed and standardized to
support and strongly encourage widely recognized software
engineering principles: reliability, portability,
modularity, reusability, programming as a human activity,
efficiency, maintainability, information hiding, abstract
data types, genericity, concurrent programming,
object-oriented programming, etc. All validated Ada
compilers (i.e. a huge majority of the commercial Ada
compilers) have passed a controlled validation process
using an extensive validation suite. Ada is not a
superset or extension of any other language. Ada does not
allow the dangerous practices or effects of old
languages, although it does provide standardized
mechanisms to interface with other languages such as
Fortran, Cobol, and C.
- Alef
- is a new language that provides threads, inter-process
and inter-machine communication through typed channels,
and abstract data types. Alef was developed in the Plan 9
project at Bell laboratories.
- ALLOY
- is a higher level parallel programming language
appropriate for programming massively parallel computing
systems. It is based on a combination of ideas from
functional, object oriented and logic programming
languages.
- AMPL - is a comprehensive and powerful
algebraic modeling language for linear and nonlinear
optimization problems, in discrete or continuous
variables.
- APL
- Array Processing Language.
- Awk
- is a convenient and expressive programming language
that can be applied to a wide variety of computing and
data-manipulation tasks.
- BARSIC - (Basic Automatic Russian
Scientific Interactive Calculator) is a language for
integrated environment BARSIC. It is powerful instrument
to develope applications for small computerized
installations, especially for computerized laboratory
experiments, computer-aided experiments and data
processing in physics.
- Befunge - Interpreted, 2-D,
4-directional, stack-based language designed as a hobby.
Not at all practical, but a fun challenge to code in.
- BETA - is a modern object-oriented
language with comprehensive facilities for procedural and
functional programming. BETA has powerful abstraction
mechanisms than provide excellent support for design and
implementation, including data definition for persistent
data. The abstraction mechanisms include support for
identification of objects, classification, and
composition. BETA is a strongly typed language (like
Simula, Eiffel, and C++), with most type checking being
carried out at compile-time.
- Cause - Object based programming
language.
- Cecil - is a purely object-oriented
language intended to support rapid construction of
high-quality, extensible software. Cecil incorporates
multi-methods, a simple prototype-based object model, a
mechanism to support a structured form of computed
inheritance, module-based encapsulation, and a flexible
static type system which allows statically- and
dynamically-typed code to mix freely.
- Clarion applications reuse code that is
already written in the form of custom controls (.VBX and
.OCX) or embedded objects (OLE). But unlike VB and
Delphi, Clarion can generate major portions of an
application automatically. This isn't "off the shelf"
code. The application generation process can be finely
tuned by the developer to create highly complex "made to
order" software. This methodology takes a fraction of the
time and effort that would be consumed by conventional
software development tools such as VB, Delphi, and
PowerBuilder. Clarion generated code isn't "pre-written",
but it is "pre-tested". A Clarion developer is virtually
guaranteed that generated code will compile and run the
first time. This is a very different experience from
conventional programming which requires a painstaking
process of debugging one statement at a time.
- CLAIRE - is a high-level functional and
object-oriented language with advanced rule processing
capabilities. It is intended to allow the programmer to
express complex algorithms with fewer lines and in an
elegant and readable manner.
- Concurrent Clean - general purpose,
higher order, pure and lazy functional programming
language for the development of sequential, parallel and
distributed real world applications.
- cT - is an algorithmic language like C,
Pascal, Fortran, and Basic, but greatly enhanced by
multimedia capabilities, including easy-to-use support
for color graphics, mouse interactions, and even movies
in QuickTime or Video for Windows format.
- DBL
- a portable, multiple-platform superset of the original
DIBOL language.
- DIBOL
- programming language, its applications: can run on
Windows '95, Windows NT, and 80+ other operating systems;
run on Digital Alpha, PCs and 500 other hardware
platforms; be accessed-by ODBC-compliant products such as
Oracle, MS Office Suite, and more; take advantage of
client/server architecture; connect to third-party
databases such as Oracle, Informix, Sybase, and more.
- Dylan - is a new language developed at
Apple. It is a bold new effort to create a powerful,
practical tool for writing mainstream commercial
applications.
- E - The E Programming Language for the
development of secure, distributed applications.
- Eiffel - is a pure object-oriented
language, designed for building robust applications,
using programming by contract.
- Elf
- is a constraint logic programming language based on the
LF Logical Framework. Elf is a uniform meta-language for
specifying, implementing, and proving properties of
programming languages and logics.
- Elisp
- (emacs lisp) is the language used to extend emacs, the
customizable text editor of choice.
- Erlang - is a functional programming
language with processes that is suitable for implementing
large systems with soft real time demands. The main
advantages of Erlang are robustness, speed of development
and reduced maintenance.
- Euphoria - is a full-featured,
interpreted-yet-fast language. It is developed by Rapid
Deployment Software.
- Forth - is an interactive programming
environment originally designed for programmers
developing applications using mini- and micro-computers.
Its primary uses have been in scientific and industrial
application such as instrumentation, robotics, process
control, graphics and image processing, artificial
intelligence and business applications. The principal
advantage of Forth include rapid, interactive software
development and efficient use of computer hardware. Forth
is often spoken of as a language because that is its most
visible aspect. However, Forth is more than a
conventional programming language in that all the
capabilities normally associated with a large portfolio
of separate programs (compilers, editors, assemblers,
etc.) are included within its range. It is also less than
a conventional programming language in its deliberate
lack of complex syntax characteristic of most high-level
languages.The original implementations of Forth were
stand-alone systems that included functions normally
performed by separate operating systems, editors,
compilers, assemblers, debuggers and other utilities. A
single, simple, consistent set of rules governed this
range of capabilities. Today, although very fast
stand-alone version are sill marketed for many
processors, there are also many versions that run
co-resident with conventional operating systems, such as
MS-DOS and Unix. Get more information about Forth at
Forth
Interest Group.
- Haskell - is
a `purely functional' language. Computation proceeds by
replacing expressions with their value. While all
computer languages incorporate functions to some degree,
Haskell programs are composed solely of functions.
Haskell is based on lambda calculus, hence the l we use
as a logo. The language is named for the logician Haskell
B. Curry, whose work provided much of the logical basis
for our language.
- Icon - is a high-level, general-purpose
programming language with a large repertoire of features
for processing data structures and character strings.
Icon is an imperative, procedural language with a syntax
reminiscent of C and Pascal, but with semantics at a much
higher level.
- J - is a very high level
general-purpose language, with a strong emphasis on
functional programming and array processing. J was
designed and developed by Ken Iverson and Roger Hui, and
implemented by Iverson Software Inc (ISI).
- Juice - is a new technology for
distributing executable content across the World Wide
Web. Juice differs from Java in several important aspects
that allow it to outperform Java in many "downloadable
Applets" applications. Juice is intended to be a
complement to Java, giving users a choice: Java or
Juice.
- LIFE - (Logic, Inheritance, Functions,
and Equations) is an experimental programming language
proposing to integrate three orthogonal programming
paradigms proven useful for symbolic computation. From
the programmer's standpoint, it may be perceived as a
language taking after logic programming, functional
programming, and object-oriented programming.
- Limbo - is a programming language
intended for applications running distributed systems on
small computers. It supports modular programming, strong
type checking at compile- and run-time, interprocess
communication over typed channels, automatic garbage
collection, and simple abstract data types. It is
designed for safe execution even on small machines
without hardware memory protection.
- Liquid Common Lisp - (LCL) (formerly
Lucid Common Lisp) provides a comprehensive
implementation of Common Lisp, conforming substantially
to the ANSI Standard (ANSI X3.226:1994), including the
Common Lisp Object System (CLOS) for advanced
object-oriented programming.
- Lua
- is a simple, yet powerful, language for extending
applications. Lua has been developed by TeCGraf, the
Computer Graphics Technology Group of PUC-Rio, the
Pontifical Catholic University of Rio de Janeiro, Brazil.
Dozens of industrial products developed by TeCGraf use
Lua. Lua means moon in Portuguese.
- MCL - (Macintosh Common Lisp) is an
object-oriented dynamic programming language fully
integrated with the Macintosh. It implements the current
industry standard Common Lisp programming language and
CLOS (as defined in Common Lisp: The Language, Second
Edition). It includes: an incremental compiler which
generates efficient native PowerPC code; a fully
integrated emacs-like Lisp program editor; a window-based
debugger; a source code stepper; a dynamic object
inspector; smart Lisp programming tools; and an extensive
library of CLOS objects including Macintosh user
interface objects. Macintosh Common Lisp provides users
with a rich set of "object-oriented dynamic language"
attributes making it especially well-suited for rapid
prototyping, custom development for business and
education, scientific and engineering applications and
academic research.
- Mercury - is a new, purely declarative
logic programming language. Like Prolog and other
existing logic programming languages, it is a very
high-level language that allows programmers to
concentrate on the problem rather than the low-level
details such as memory management. Unlike Prolog, which
is oriented towards exploratory programming, Mercury is
designed for the construction of large, reliable,
efficient software systems by teams of programmers. As a
consequence, programming in Mercury has a different
flavor than programming in Prolog.
- ML
(which stands for Meta-Language) - is a family of
advanced programming languages with [usually] functional
control structures, strict semantics, a strict
polymorphic type system, and parametrized modules. It
includes Standard ML, Lazy ML, CAML, CAML Light, and
various research languages. Implementations are available
on many platforms, including PCs, mainframes, most models
of workstation, multi-processors and supercomputers. ML
has many thousands of users, is taught at many
universities (and is the first programming language
taught at some).
- NESL - is a parallel language developed
at Carnegie Mellon by the SCandAL project. It integrates
various ideas from the theory community (parallel
algorithms), the languages community (functional
languages) and the system's community (many of the
implementation techniques).
- NewtonScript
- is a new language designed specifically for the Newton,
would be a delight on any platform. Its similarity to
standard programming languages such as C and Pascal
ensures an easy coding transition. At the same time, its
innovative aspects - dynamic typing, frame, and so on -
are constructs worth learning. Indeed, we expect that
once you are familiar with NewtonScript, you will be
reluctant to return to many older languages.
- Obliq
- is a lexically-scoped untyped interpreted language that
supports distributed object-oriented computation. An
Obliq computation may involve multiple threads of control
within an address space, multiple address spaces on a
machine, heterogeneous machines over a local network, and
multiple networks over the Internet. Obliq objects have
state and are local to a site. Obliq computations can
roam over the network, while maintaining network
connections.
- Occam
- is a programming language which facilitates writing
parallel programs, allowing the programmer to specify
whether processes are to be executed sequentially or in
parallel. Based on CSP, it was originally developed for
the Transputer.
- OOT
(Object
Oriented Turing) - an advanced objected
oriented programming language, which is strongly typed,
has extensive run-time checking, and features a standard
library that is emphasizes interplatform software
compatibility.
- Oz -
is a concurrent constraint programming language designed
for applications that require complex symbolic
computations, organization into multiple agents, and soft
real-time control. It is based on a new computation model
providing a uniform foundation for higher-order
functional programming, constraint logic programming, and
concurrent objects with multiple inheritance. From
functional languages Oz inherits full compositionality,
and from logic languages Oz inherits logic variables and
constraints (including feature and finite domain
constraints). Search in Oz is encapsulated (no
backtracking) and includes one, best and all solution
strategies.
- Perl - is an interpreted language
optimized for scanning arbitrary text files, extracting
information from those text files, and printing reports
based on that information. It's also a good language for
many system management tasks. The language is intended to
be practical (easy to use, efficient, complete) rather
than beautiful (tiny, elegant, minimal). It combines (in
the author's opinion, anyway) some of the best features
of C, sed, awk, and sh, so people familiar with those
languages should have little difficulty with it.
(Language historians will also note some vestiges of csh,
Pascal, and even BASIC-PLUS.) Expression syntax
corresponds quite closely to C expression syntax. Unlike
most Unix utilities, Perl does not arbitrarily limit the
size of your data--if you've got the memory, Perl can
slurp in your whole file as a single string. Recursion is
of unlimited depth. And the hash tables used by
associative arrays grow as necessary to prevent degraded
performance. Perl uses sophisticated pattern matching
techniques to scan large amounts of data very quickly.
Although optimized for scanning text, Perl can also deal
with binary data, and can make dbm files look like
associative arrays (where dbm is available). Setuid Perl
scripts are safer than C programs through a dataflow
tracing mechanism which prevents many stupid security
holes. If you have a problem that would ordinarily use
sed or awk or sh, but it exceeds their capabilities or
must run a little faster, and you don't want to write the
silly thing in C, then Perl may be for you. There are
also translators to turn your sed and awk scripts into
Perl scripts.
- Phantom
- is a new interpreted language designed to address some
of the problems presented by large-scale, interactive,
distributed applications such as distributed conferencing
systems, multi-player games, and collaborative work
tools. Phantom combines the distributed lexical scoping
semantics of Obliq with a substantial language core.
- Pike - is a dynamic language with a
syntax that looks like C. It is simple to learn, doesn't
need long compilation passes and has powerful builtin
data types that allows simple and fast data manipulation.
Pike is GPL which means that anybody can fetch if for
free and use it for almost any purpose they please.
- PL/B supports highly interactive
business application programming in individual and shared
network environments. It has been developed to be easily
learned in shorter time frames and by less experienced
personnel than a majority of other standard languages.
The language structure lends itself not only to easy code
generation, but also to easy automated code analysis and
reengineering which X3J15 feels are important
considerations for future business programming
environments.
- PL/I - is a free-form, easy to learn
and easy to use, highly-structured, high-productivity
language with a wide variety of features that support
scientific, engineering, commercial, and system
programming tasks. It is designed to offer robustness,
machine independence, structured programming constructs,
powerful exception handling capabilities, dynamic storage
management, extensive data types, data aggregates
(arrays, structures, unions, and combinations thereof),
extensive I/O capabilities, and built-in functions for
string, mathematical, arithmetic, precision, array,
storage control, condition handling, date/time, and other
processing.
- PostScript
- is a programming language optimized for printing
graphics and text (whether on paper, film, or CRT is
immaterial). In the jargon of the day, it is a page
description language. It was introduced by Adobe in 1985
and first (to my knowledge) appeared in the Apple
LaserWriter. The main purpose of PostScript was to
provide a convenient language in which to describe images
in a device independent manner. This device independence
means that the image is described without reference to
any specific device features (e.g. printer resolution) so
that the same description could be used on any PostScript
printer (say, a LaserWriter or a Linotron) without
modification.
- Prograph CPX - is an entirely visual
language with complete support for object-oriented
programming concepts including: inheritance,
encapsulation and polymorphism. With Prograph CPX, the
iconic data flow diagrams you create are the executable
source code for your application. You can concentrate on
building your program rather than spending hours typing
code and correcting syntax errors.
- Prolog
- is a logical and a declarative programming language.
The name itself, Prolog, is short for PROgramming in
LOGic. Prolog's heritage includes the research on theorem
provers and other automated deduction systems developed
in the 1960s and 1970s. The inference mechanism of Prolog
is based upon Robinson's resolution principle (1965)
together with mechanisms for extracting answers proposed
by Green (1968). These ideas came together forcefully
with the advent of linear resolution procedures. Explicit
goal-directed linear resolution procedures, such as those
of Kowalski and Kuehner (1971) and Kowalski (1974), gave
impetus to the development of a general purpose logic
programming system. The "first" Prolog was "Marseille
Prolog" based on work by Colmerauer (1970). The first
detailed description of the Prolog language was the
manual for the Marseille Prolog interpreter (Roussel,
1975). The other major influence on the nature of this
first Prolog was that it was designed to facilitate
natural language processing.
- Prometheus - is a programming language
designed for logic, mathematics, artificial intelligence,
and string and list processing (database manipulation).
It contains elements from C, Pascal, LISP, and Prolog,
but has many novel features. It is high-level and very
weakly typed.
- Python - is an interpreted,
interactive, object-oriented programming language. It is
often compared to Tcl, Perl, Scheme or Java. Python
combines remarkable power with very 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 (X11, Motif, Tk, Mac, MFC, STDWIN). New
built-in modules are easily written 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, Amiga... If your
favorite system isn't listed here, it may still be
supported, if there's a C compiler for it. Ask around on
comp.lang.python --
or just try compiling Python yourself. Python is
copyrighted but freely usable and distributable, even for
commercial use.
- REBOL - is
a small, flexible language for sharing content
(documents, databases, programs, multimedia) between
people, computers, processes, and networks. In technical
terms, REBOL is a distributed object language which
interprets symbolic, dynamically-scoped, relational
environments.
- REXX - is a programming language
designed by Michael Cowlishaw of IBM UK Laboratories. In
his own words: "REXX is a procedural language that allows
programs and algorithms to be written in a clear and
structured way." REXX doesn't look that different from
any other procedural language.
- Sather - is an object oriented language
designed to be simple, efficient, safe, flexible and
non-proprietary. One way of placing it in the "space of
languages" is to say that it aims to be as efficient as
C, C++, or Fortran, as elegant as and safer than Eiffel,
and support higher-order functions and iteration
abstraction as well as Common Lisp, CLU or Scheme.
- Scheme
- is a statically scoped and properly tail-recursive
dialect of the Lisp programming language invented by Guy
Lewis Steele Jr. and Gerald Jay Sussman. It was designed
to have an exceptionally clear and simple semantics and
few different ways to form expressions. A wide variety of
programming paradigms, including imperative, functional,
and message passing styles, find convenient expression in
Scheme.
- Self
- is designed for expressive power and malleability, Self
combines a pure, prototype-based object model with
uniform access to state and behavior. Unlike other
languages, Self allows objects to inherit state and to
change their patterns of inheritance dynamically.
- Smalltalk
- is an object oriented language with roots in
Simula.
- SMSL - Standard Multimedia/Hypermedia
Scripting Language. ISO/IEC 13240: standard for
multimedia scripting in SGML/HyTime applications.
Includes support for HTML scripts (Java, cgi, etc.).
- SIOD
- is a small-footprint implementation of the Scheme
programming language that is provided with some database,
unix programming and cgi scripting extensions.
- SR
(Synchronizing Resources) - is a language for writing
concurrent programs. The main language constructs are
resources and operations. Resources encapsulate processes
and variables they share; operations provide the primary
mechanism for process interaction. SR provides a novel
integration of the mechanisms for invoking and servicing
operations. Consequently, all of local and remote
procedure call, rendezvous, message passing, dynamic
process creation, multicast, and semaphores are
supported. SR also supports shared global variables and
operations.
- Synergy/DE
- is a total solution for the development of
multi-platform mission-critical business applications
that run in heterogeneous environments across
client/server networks or on local workstations.
- Tcl/Tk - is
a development environment for building applications with
the Motif look-and-feel in a fraction of the usual
development time. Its rapid development cycle makes it
easy to try out new ideas and experiment with the details
of your interface.
- Terse - is an x86 specific programming
language compatible with the entire processor family from
the 8088 through the P6 and beyond. It is a machine-level
language that gives you all of the control available in
assembly with the ease-of-use and look-and-feel of a
high-level language.
- Theta - is a new object oriented
programming language under development by the Programming
Methodology group, to be used in Thor.
- Transframe
- another language based on C and similar to C++, is
designed in a different philosophy. Instead of doing
simple tailoring work, Transframe unifies hybrid C and
C++ concepts and provides a transformable abstraction
vehicle that are flexible enough for users to tailor
their own domain-specific "dresses". Transframe's
unification enables a flexible framework for various
applications. It provides a customizable dress that
shapes software concepts faithfully. By unification, the
fixed and built-in part (the hard part) of the language
framework becomes smaller while the user-definable part
(the soft part) becomes larger so that the framework are
flexible enough to build various domain-specific
application models.
- Vortex - is an optimizing compiler
infrastructure for object-oriented and other high-level
languages. It targets both pure object-oriented languages
like Cecil and hybrid object-oriented languages like C++,
Modula-3, and Java. Vortex currently incorporates
high-level optimizations such as static class analysis,
class hierachy analysis, profile-guided receiver class
prediction, profile-guided selective procedure
specialization, intraprocedural message splitting,
automatic inlining, and static closure analyses. It also
includes a collection of standard intraprocedural
analyses such as common subexpression elimination and
dead assignment elimination. The Vortex compiler is
written entirely in
Cecil.
- XDS -
(xTech Development System) is a portable
bilingual programming system featuring Modula-2 and
Oberon-2 languages. XDS provides the same programming
environment for all available platforms from Windows
95/Windows NT to various Unix workstations.
- YAFL Programming Language - is a middle
term research project which covers the design and the
implementation of a new object-oriented language, as well
as several attached programming tools.
|