NOF

Alexei Syrovatkin
© 1996, 1997

Picture

Line

  • 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.

Hosted by www.Geocities.ws

1