List of C-family programming languages
Dennis Ritchie invented the C programming language. Broadly speaking, C-family languages are those that use C-like block syntax (including curly braces to begin and end the block). The family spreads out over several programming paradigms, including procedural programming, object-oriented programming, functional programming, and generic programming, as well as having both native code and virtual machine runtime environments.
Language | Year started | Created by (at) | Comments | References |
---|---|---|---|---|
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. | |
C shell/tcsh | late 1970s | 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. | [1] |
AMPL | 1985 | Robert Fourer, David Gay and Brian Kernighan (Bell Labs) | It is an algebraic modeling language with elements of a scripting language. | |
Objective-C | 1986 | Brad Cox and Tom Love | It is 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. | [1] |
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. | [2] |
Java | 1991 | James Gosling (Sun Microsystems) | Created as the 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. | [2] |
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. | [3] |
SAC | 1994 | (Germany) | Development spread to several institutions in Germany, Canada, and the UK. Functional language with C syntax. | [4] |
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. | [5] |
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 HTML scripting language. C-like syntax. | |
ECMAscript | 1995 | Brendan Eich (Netscape) | Created as Mocha and LiveScript, announced in 1995, shipped the next year as JavaScript. Primarily a scripting language used in Web page development as well as numerous application environments such as Adobe Flash and QtScript. Though based on C and Java syntax, it is primarily a functional programming language based on Self. | |
C-- | 1997 | Simon Peyton Jones, Norman Ramsey | generated mainly by compilers for very high-level languages | |
NQC | ~1998 | David Baum | An embedded systems programming language for the Lego Mindstorms RCX 1.x platform; intended as a drop-in replacement for the LabVIEW-based ROBOLAB IDE. Later replaced with NXC, an enhanced version created for the Mindstorms NXT platform. | [6] |
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. | [7][8] |
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. | |
LSL | 2003 | ? | Created for the Second Life virtual world by Linden Lab. | |
Squirrel | 2003 | Alberto Demichelis | A light-weight scripting language | |
Rust | 2006 | Graydon Hoare | Rust emphasizes a concurrent-actor style. | |
Vala | 2006 | Jürg Billeter, Raffaele Sandrini | Vala adds objects to C to support GNOME developers. | |
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. | [9] |
Swift (programming language) | 2014 | Chris Lattner (Apple) | Developed at Apple to replace Objective-C with a simpler language. | |
AWK | 1977 | Alfred Aho, Peter Weinberger & Brian Kernighan (Bell Labs) | Designed for text processing and typically used as a data extraction and reporting tool. | |
BitC | 2006 | Johns Hopkins University | Aims to support formal program verification. | |
LPC (programming language) | 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. | |
Pike (programming language) | 1994 | Fredrik Hübinette | An interpreted, general-purpose, high-level, cross-platform, dynamic programming language, with a syntax similar to that of C. | |
Verilog | 1984 | ? | Standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits. | |
Seed7 | 2005 | Thomas Mertes | An extensible general-purpose programming language. | |
Python (programming language) | 1991 | Guido van Rossum | A widely used general-purpose, high-level programming language. | |
Processing (programming language) | 2001 | Casey Reas, Benjamin Fry | An open source programming language and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities. | |
Split-C | 1993 | ? | A parallel extension of the C programming language. | |
Unified Parallel C | 2003 | ? | An extension of the C programming language designed for high-performance computing on large-scale parallel machines. | |
Cilk | 1994 | MIT Laboratory for Computer Science | General-purpose programming language designed for multithreaded parallel computing. | |
Chapel (programming language) | 2009 | Cray Inc. | Aims to improve the programmability of parallel computers in general and the Cray Cascade system in particular. | |
Fortress (programming language) | 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. | [10] |
Scala (programming language) | 2003 | Martin Odersky | An object-functional programming language for general software applications. | |
Haskell (programming language) | 1990 | Simon Peyton Jones, Lennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, John Hughes, Thomas Johnsson, Mark Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, Philip Wadler | A standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. Influenced C++11 and C#. | |
X10 (programming language) | 2004 | Kemal Ebcioğlu, Vijay Saraswat, and Vivek Sarka (IBM) | Designed specifically for parallel computing using the partitioned global address space (PGAS) model. | [11] |
Io (programming language) | 2002 | Steve Dekorte | A pure object-oriented programming language inspired by Smalltalk, Self, Lua, Lisp, Act1, and NewtonScript. | |
Agora (programming language) | 1993 | ? | A reflective, prototype-based, object-oriented programming language that is based exclusively on message passing and not delegation. | |
Lua (programming language) | 1993 | Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo | A lightweight multi-paradigm programming language designed as a scripting language with extensible semantics as a primary goal. | |
Lisaac | 2003 | Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo | A statically typed prototype-based language conceived by Benoît Sonntag, in which the Isaac operating system is being written. The Lisaac transpiler produces optimized ANSI C code. | |
Falcon (programming language) | 2003 | Giancarlo Niccolai | An open source, multi-paradigm programming language. | |
Ruby (programming language) | 1995 | Yukihiro Matsumoto | A dynamic, reflective, object-oriented, general-purpose programming language. | |
Perl 6 | 2000 | Larry Wall | A member of the Perl family of programming languages. | |
Julia (programming language) | 2012 | Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman | A high-level dynamic programming language designed to address the requirements of high-performance numerical and scientific computing while also being effective for general purpose programming. | |
Windows PowerShell | 2006 | Microsoft | A task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language built on the .NET Framework. | |
Tcl | 1988 | John Ousterhout | Commonly used for rapid prototyping, scripted applications, GUIs and testing. | |
Tea (programming language) | 1997 | Jorge Nunes | A high level scripting language for the Java environment. | |
BCPL | 1966 | Martin Richards | A procedural, imperative, and structured computer programming language. | |
B (programming language) | 1969 | Ken Thompson | Designed for recursive, non-numeric, machine independent applications, such as system and language software. | |
Nim (programming language) | 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. | |
Yoix | 2000 | Rich Drechsler and John Mocenigo | A high-level, general-purpose, interpreted, dynamic programming language. | |
ZOPL | early 1970s | Geac Computer Corporation | A programming language created for use on their mainframe computer systems used in libraries and banking institutions. It had similarities to C and Pascal. | |
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. | |
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 C. | [12] |
Not eXactly C | ? | ? | 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. | |
Not Quite C | ? | ? | A programming language, application programming interface (API), and native bytecode compiler toolkit for the Lego Mindstorms, Cybermaster and LEGO Spybotics systems. It is based primarily on the C language but has specific limitations, such as the maximum number of subroutines and variables allowed. | |
Oak (programming language) | 1991 | James Gosling (Sun Microsystems) | A programming language created initially for Sun Microsystems set-top box project. The language later evolved to become Java. | |
PROMAL | 1985 | Systems Management Associates | A C-like programming language for MS-DOS, Commodore 64, and Apple II. | |
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 (programming language) | 2013 | Lars Bak and Kasper Lund (Google) | A class-based, single inheritance, object-oriented language with C-style syntax. | |
CINT | 1997-1999? | ? | An interpreted version of C/C++, much in the way BeanShell is an interpreted version of Java. | |
Cg (programming language) | ? | 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. | |
nesC | ? | ? | A component-based, event-driven programming language used to build applications for the TinyOS platform. | |
ColdC | 1993 | Greg Hudson | A dynamically typed prototype-based object oriented system, with a syntax derived from the C programming language. | |
R (programming language) | 1993 | Ross Ihaka and Robert Gentleman | A programming language and software environment for statistical computing and graphics. | |
SuperCollider | 1996 | James McCartney | A dynamically typed, garbage-collected, single inheritance object-oriented and functional language similar to Smalltalk with a syntax similar to Lisp or the C programming language for real-time audio synthesis and algorithmic composition. | |
Hack (programming language) | 2014 | Julien Verlaguet, Alok Menghrajani, Drew Paroski (Facebook) | A programming language for the HipHop Virtual Machine (HHVM). | |
Charm (programming language) | 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. | |
X Sharp | 2009 | COSMOS Development Team | A programming language designed to bring some of C-like language syntax to assembly language. | |
WLanguage | 1992 | PC SOFT | An integrated 4GL. | |
Claire (programming language) | 1994 | Yves Caseau | A high-level functional and object-oriented programming language with rule processing abilities. | |
Groovy (programming language) | 2003 | James Strachan | An object-oriented programming language for the Java platform. | |
Noop | 2009 | Attempts to blend the best features of "old" and "new" languages, while syntactically encouraging good programming practice. | ||
Neko (programming language) | 2005 | Nicolas Cannasse (Motion-Twin) | A high-level dynamically typed programming language | |
Axum (programming language) | 2009 | Microsoft | A domain specific concurrent programming language, based on the Actor model. | |
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. | |
Telescript (programming language) | 1990 | Marc Porat | An object-oriented programming language. | |
Fantom (programming language) | 2005 | Brian Frank and Andy Frank | An object-oriented, functional, actor concurrent with a null-able aware type system emphasizing pragmatism in building enterprise systems running on top of the JVM or the CLR or JavaScript. |
References
- 1 2 "The C Family". linuxfinances.info. Retrieved 2015-12-30.
- 1 2 "Programming language". www.cs.mcgill.ca. Retrieved 2015-12-30.
- ↑ "S-Lang Library Information Page".
- ↑ http://www.sac-home.org/publications/GrelSchoIJPP06.pdf
- ↑ "Alef Language Reference Manual".
- ↑ "NQC - Not Quite C".
- ↑ "Scientific Numerical Computing".
- ↑ "cross platform Ch Shell Programming".
- ↑ http://reports-archive.adm.cs.cmu.edu/anon/2010/CMU-CS-10-145.pdf
- ↑ "Project Fortress: Wiki: Home — Project Kenai".
- ↑ http://x10.sourceforge.net/documentation/languagespec/x10-latest.pdf
- ↑ http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf
This article is issued from Wikipedia - version of the Thursday, January 28, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.