List of C-family programming languages
(Redirected from List of C-based programming languages)Jump to navigation Jump to search
This article has multiple issues. Please help to improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
Due to the success of the C programming language and some of its derivatives, C-family programming languages span a large variety of programming paradigms, conceptual models, and run-time environments.
|Language||Year started||Created by (at)||Description/Comments||References|
|BCPL||1966||Martin Richards||A procedural, imperative, and structured computer programming language.||in|
|B||1969||Ken Thompson||Designed for recursive, non-numeric, machine independent applications, such as system and language software.|
|C||1969-1973||Dennis Ritchie (Bell Labs)||Was an enhancement of Ken Thompson's B language.|
|Ratfor||1974||Brian Kernighan (Bell Labs)||A hybrid of C and Fortran, implemented as a preprocessor for environments without easy access to C compilers.|
|AWK||1977||Alfred Aho, Peter Weinberger & Brian Kernighan (Bell Labs)||Designed for text processing and typically used as a data extraction and reporting tool.|
|C shell/tcsh||1978||Bill Joy (UC Berkeley)||Scripting language and standard Unix shell.|
|C++||1979||Bjarne Stroustrup (Bell Labs)||Named as "C with Classes" and renamed C++ in 1983; it began as a reimplementation of static object orientation in the tradition of Simula 67, and through standardization and wide use has grown to encompass generic programming as well as its original object-oriented roots.|||
|Newsqueak||early 1980s||Rob Pike||A concurrent programming language for writing application software with interactive graphical user interfaces. Newsqueak's syntax and semantics are influenced by the C language, but its approach to concurrency was inspired by CSP.|||
|AMPL||1985||Robert Fourer, David Gay and Brian Kernighan (Bell Labs)||An algebraic modeling language with elements of a scripting language.|
|PROMAL||1985||Systems Management Associates||A C-like programming language for MS-DOS, Commodore 64, and Apple II.|
|Objective-C||1986||Brad Cox and Tom Love||An object-oriented dynamic language based heavily on Smalltalk. A loosely defined de facto standard library by the original developers has now largely been displaced by variations on the OpenStep FoundationKit.|||
|C*||1987||Thinking Machines||Object-oriented, data-parallel superset of ANSI C.|
|Perl||1988||Larry Wall||Scripting language used extensively for system administration, text processing, and web server tasks.|||
|Telescript||1990||Marc Porat||An object-oriented programming language.|
|Java||1991||James Gosling (Sun Microsystems)||Created as Oak, and released to the public in 1995. It is an OODL based inspired heavily by Objective-C, though with a syntax based somewhat on C++. It also compiles to its own bytecode, a standard part of the language specification. It is strongly typed, a feature that is enforced by the VM.|||
|S-Lang||1991||John E. Davis||A library with a powerful interpreter that provides facilities required by interactive applications such as display/screen management, keyboard input, keymaps, etc.|||
|Split-C||1993||?||A parallel extension of the C programming language.|
|Agora||1993||?||A reflective, prototype-based, object-oriented programming language that is based exclusively on message passing and not delegation.|
|SAC||1994||(Germany)||Development spread to several institutions in Germany, Canada, and the UK. Functional language with C syntax.|||
|Pike||1994||Fredrik Hübinette||An interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C.|
|Cilk||1994||MIT Laboratory for Computer Science||General-purpose programming language designed for multithreaded parallel computing.|
|Alef||1995||Phil Winterbottom (Bell Labs)||Created for systems programming on the Plan 9 from Bell Labs operating system; it was published in 1995 but eventually abandoned. It provided substantial language support for concurrent programming.|||
|Limbo||1995||Limbo succeeded Alef and is used in Inferno as Alef was used in Plan9.|
|PHP||1995||Rasmus Lerdorf||Widely used as a server-side scripting language. C-like syntax.|
|LPC||1995||Lars Pensjö||Developed originally to facilitate MUD building on LPMuds. Though designed for game development, its flexibility has led to it being used for a variety of purposes.|
|C--||1997||Simon Peyton Jones, Norman Ramsey||Generated mainly by compilers for very high-level languages.|
|E||1997||Mark S. Miller, Dan Bornstein (Electric Communities)||Designed with secure computing in mind, accomplished chiefly by strict adherence to the object-oriented computing model.|
|C#||1999||Anders Hejlsberg (Microsoft)||Created under the name "Cool", it is syntactically very similar to Java, though with a Smalltalk-like unified type system.|
|Ch||2001||Harry Cheng||A C/C++ scripting language with extensions for shell programming and numerical computing.|||
|D||2001||Walter Bright (Digital Mars)||Based on C++, but with an incompatible syntax having traits from other C-like languages like Java and C#.|
|Cyclone||2001||Greg Morrisett (AT&T Labs)||Intended to be a safe dialect of the C language. It is designed to avoid buffer overflows and other vulnerabilities that are endemic in C programs, without losing the power and convenience of C as a tool for system programming.|
|SA-C||2001||Cameron Project||Single Assignment C (SA-C) is designed to be directly and intuitively translatable into circuits, including FPGAs.|
|Cg||2002||Nvidia||Based on the C programming language and although they share the same syntax, some features of C were modified and new data types were added to make Cg more suitable for programming graphics processing units. This language is only suitable for GPU programming and is not a general programming language.|
|LSL||2003||?||Created for the Second Life virtual world by Linden Lab.|
|Squirrel||2003||Alberto Demichelis||A light-weight scripting language.|
|Unified Parallel C||2003||?||An extension of the C programming language designed for high-performance computing on large-scale parallel machines.|
|eC||2004||Jérôme Jacovella-St-Louis (Ecere)||A super-set of C adding object-oriented features (inspired by C++), properties, dynamic modules and reflection developed as part of the Ecere SDK project, an open-source cross-platform SDK.|
|Seed7||2005||Thomas Mertes||An extensible general-purpose programming language.|
|BitC||2006||Johns Hopkins University||Aims to support formal program verification.|
|Fortress||2006||Sun Labs||An experimental programming language for high-performance computing, created by Sun Microsystems with funding from DARPA's High Productivity Computing Systems project.|||
|Not eXactly C (NXC)||2006||John Hansen||A high-level programming language for the Lego Mindstorms NXT. NXC, which is short for Not eXactly C, is based on Next Byte Codes, an assembly language. NXC has a syntax like C. It is part of the BricX IDE that integrates editor, tools for interfacing with the brick, and the compiler, but supports more languages.|||
|Go||2007||Rob Pike, Ken Thompson, and Robert Griesemer (Google)||Released to public in 2009, it is a concurrent language with fast compilations, Java-like syntax, but no object-oriented features and strong typing.|
|OpenCL C||2009||Apple, Khronos Group||OpenCL specifies a modified subset of the C programming language for writing programs to run on various compute devices (e.g. GPUs, DSPs).|
|C0||2010||Rob Arnold (CMU)||A safe subset of C with checked pointers and bounds-checked arrays. Created for CMU introductory computer courses.|||
|Swift||2014||Chris Lattner (Apple)||Swift can import any C library, optionally annotating C headers to map C types to Swift objects and import libraries as Swift modules. Swift has two-way bridging with Objective-C on platforms which support Apple's Objective-C runtime. Unlike Objective-C, Swift does not currently support C++ interoperation or exposing Swift types as C structs.|
|Chapel||2009||Cray Inc.||Aims to improve the programmability of parallel computers in general and the Cray Cascade system in particular.|
|Nim||2008||Andreas Rumpf||An imperative, multi-paradigm, compiled programming language.|
|Nemerle||2003||Andreas Rumpf||A general-purpose high-level statically typed programming language designed for platforms using the Common Language Infrastructure (.NET/Mono).|
|ApeScript||?||?||An interpreted procedural dynamic-typed language.|
|Amiga E||1993||Wouter van Oortmerssen||A combination of many features from a number of languages, but follows the original C programming language most closely in terms of basic concepts.|
|HolyC||2005||Terry A. Davis||A dialect of C for Terry's own operating system TempleOS. Most notable changes are the argument passing, variable type naming (U8 instead of unsigned char, I32 instead of int and so on), code structure ("There is no main() function. Any code outside of functions gets executed upon start-up, in order "), switch statement structure and substitution of some parts of the preprocessor like the removal of #define and the use of '$' as the escape character.|
|Lite-C||2007||Atari Inc||A programming language for multimedia applications and personal computer games, using a syntax subset of the C language with some elements of the C++ language.|
|Not Quite C (NQC)||~1998||David Baum||An embedded systems programming language, application programming interface (API), and native bytecode compiler toolkit for the Lego Mindstorms RCX platform, Cybermaster and LEGO Spybotics systems. It is intended as a drop-in replacement for the LabVIEW-based ROBOLAB IDE. It is primarily based on the C language but has specific limitations, such as the maximum number of subroutines and variables allowed. Later replaced with NXC, an enhanced version created for the Mindstorms NXT platform.|||
|Oak||1991||James Gosling (Sun Microsystems)||A programming language created initially for Sun Microsystems set-top box project. The language later evolved to become Java.|
|Handel-C||1996||Oxford University Computing Laboratory||A high-level programming language which targets low-level hardware, most commonly used in the programming of FPGAs. It is a rich subset of C.|
|Dart||2013||Lars Bak and Kasper Lund (Google)||A class-based, single inheritance, object-oriented language with C-style syntax.|
|CINT||1997-1999?||Masaharu Goto||An interpreted version of C/C++, much in the way BeanShell is an interpreted version of Java.|
|R||1993||Ross Ihaka and Robert Gentleman||A programming language and software environment for statistical computing and graphics.|
|Hack||2014||Julien Verlaguet, Alok Menghrajani, Drew Paroski (Facebook)||A programming language for the HipHop Virtual Machine (HHVM).|
|Charm||1996||?||An object oriented computer programming language with similarities to the RTL/2, Pascal and C languages in addition to containing some unique features of its own.|
|Claire||1994||Yves Caseau||A high-level functional and object-oriented programming language with rule processing abilities.|
|Noop||2009||Attempts to blend the best features of "old" and "new" languages, while syntactically encouraging good programming practice.|
|Neko||2005||Nicolas Cannasse (Motion-Twin)||A high-level dynamically typed programming language.|
|Axum||2009||Microsoft||A domain specific concurrent programming language, based on the Actor model.|
|Rust||2010||Graydon Hoare (Mozilla)||A language empowering everyone to build reliable and efficient software.|
|Umple||2008||University of Ottawa||A language for both object-oriented programming and modeling with class diagrams and state diagrams.|
|TOM (object-oriented programming language)||1990s||?||An object-oriented programming language that built on the lessons learned from Objective-C.|
|nesC||Unknown||Unknown||Pronounced "NES-see", it is an extension to the C programming language designed to embody the structuring concepts and execution model of TinyOS. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources.|||
|Zig||2015||Andrew Kelley||A general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.|||
- "The C Family". linuxfinances.info. Retrieved 2015-12-30.
- "S-Lang Library Information Page".
- "Archived copy" (PDF). Archived from the original (PDF) on 2016-03-05. Retrieved 2015-05-11.CS1 maint: archived copy as title (link)
- "Alef Language Reference Manual".
- "Scientific Numerical Computing".
- "cross platform Ch Shell Programming".
- "Project Fortress: Wiki: Home — Project Kenai". Archived from the original on 2013-01-12. Retrieved 2015-05-11.
- "NXC - Not eXactly C".
- "Swift Programming Language Evolution". 17 October 2021.
- "Swift Programming Language Evolution". 17 October 2021.
- "The Temple Operating System". 2017-03-25. Archived from the original on 2017-03-25. Retrieved 2019-04-16.
- "NQC - Not Quite C".
- GitHub - tinyos/nesc: Master nesc repository., TinyOS, 2019-03-05, retrieved 2019-03-17
- "The Zig Programming Language".