Debido al éxito del lenguaje de programación C y algunos de sus derivados, los lenguajes de programación de la familia C abarcan una gran variedad de paradigmas de programación, modelos conceptuales y entornos de tiempo de ejecución.
Idioma | Año iniciado | Creado por (at) | Descripción / Comentarios | Referencias |
---|---|---|---|---|
BCPL | 1966 | Martin Richards | Un lenguaje de programación de computadoras procedimental, imperativo y estructurado. | en |
B | 1969 | Ken Thompson | Diseñado para aplicaciones recursivas, no numéricas e independientes de la máquina, como software de sistema y lenguaje. | |
C | 1969-1973 | Dennis Ritchie ( Laboratorios Bell ) | Fue una mejora de Ken Thompson 's lengua B . | |
Ratfor | 1974 | Brian Kernighan (Laboratorios Bell) | Un híbrido de C y Fortran , implementado como preprocesador para entornos sin fácil acceso a los compiladores de C. | |
AWK | 1977 | Alfred Aho , Peter Weinberger y Brian Kernighan ( Bell Labs ) | Diseñado para el procesamiento de texto y normalmente se utiliza como herramienta de generación de informes y extracción de datos. | |
C shell / tcsh | 1978 | Bill Joy ( UC Berkeley ) | Lenguaje de programación y shell estándar de Unix . | |
C ++ | 1979 | Bjarne Stroustrup ( Bell Labs ) | Nombrado como "C con clases" y renombrado C ++ en 1983; comenzó como una reimplementación de la orientación a objetos estáticos en la tradición de Simula 67, y a través de la estandarización y el uso amplio ha crecido hasta abarcar la programación genérica así como sus raíces originales orientadas a objetos. | [1] |
Newsqueak | principios de la década de 1980 | Rob Pike | Un lenguaje de programación concurrente para escribir software de aplicación con interfaces gráficas de usuario interactivas. La sintaxis y la semántica de Newsqueak están influenciadas por el lenguaje C, pero su enfoque de la concurrencia se inspiró en CSP . | [2] |
AMPL | 1985 | Robert Fourer , David Gay y Brian Kernighan ( Bell Labs ) | Un lenguaje de modelado algebraico con elementos de un lenguaje de secuencias de comandos. | |
PROMAL | 1985 | Asociados de gestión de sistemas | Un lenguaje de programación similar a C para MS-DOS, Commodore 64 y Apple II. | |
C objetivo | 1986 | Brad Cox y Tom Love | Un lenguaje dinámico orientado a objetos basado en gran medida en Smalltalk . Una biblioteca estándar de facto poco definida por los desarrolladores originales ahora ha sido desplazada en gran medida por variaciones en OpenStep FoundationKit. | [1] |
C* | 1987 | Máquinas de pensar | Orientada a objetos , superconjunto de datos en paralelo de ANSI C . | |
Perl | 1988 | Larry Wall | Lenguaje de secuencias de comandos que se utiliza ampliamente para la administración del sistema, el procesamiento de texto y las tareas del servidor web. | [ cita requerida ] |
Telescript | 1990 | Marc Porat | Un lenguaje de programación orientado a objetos. | |
Java | 1991 | James Gosling ( Sun Microsystems ) | Creado como Oak y lanzado al público en 1995. Es un OODL basado en gran medida en Objective-C, aunque con una sintaxis basada en cierto modo en C ++. También compila en su propio código de bytes , una parte estándar de la especificación del lenguaje. Está fuertemente tipado, una característica que aplica la máquina virtual. | [ cita requerida ] |
Jerga | 1991 | John E. Davis | Una biblioteca con un poderoso intérprete que proporciona las facilidades que requieren las aplicaciones interactivas, como la gestión de pantallas, entrada de teclado, mapas de teclas, etc. | [3] |
Split-C | 1993 | ? | Una extensión paralela del lenguaje de programación C. | |
Ágora | 1993 | ? | Un lenguaje de programación reflexivo, basado en prototipos y orientado a objetos que se basa exclusivamente en el paso de mensajes y no en la delegación. | |
SACO | 1994 | (Alemania) | El desarrollo se extendió a varias instituciones en Alemania, Canadá y el Reino Unido. Lenguaje funcional con sintaxis C. | [4] |
Lucio | 1994 | Fredrik Hübinette | Un lenguaje de programación dinámico interpretado, de propósito general, de alto nivel, multiplataforma, con una sintaxis similar a la de C. | |
Cilk | 1994 | Laboratorio de Ciencias de la Computación del MIT | Lenguaje de programación de propósito general diseñado para computación paralela multiproceso. | |
Alef | 1995 | Phil Winterbottom (Laboratorios Bell) | Creado para la programación de sistemas en el Plan 9 del sistema operativo Bell Labs ; se publicó en 1995 pero finalmente se abandonó. Proporcionó un soporte lingüístico sustancial para la programación simultánea . | [5] |
Limbo | 1995 | Limbo sucedió a Alef y se usa en Inferno como Alef se usó en Plan9. | ||
PHP | 1995 | Rasmus Lerdorf | Ampliamente utilizado como lenguaje de secuencias de comandos del lado del servidor. Sintaxis similar a C. | |
ECMAScript | 1995 | Brendan Eich ( Netscape ) | Creado como Mocha y LiveScript, anunciado en 1995, se envió al año siguiente como JavaScript . Principalmente un lenguaje de programación utilizado en el desarrollo de páginas web, así como en numerosos entornos de aplicaciones como Adobe Flash y QtScript . Aunque inicialmente se basa en Scheme y Self , es principalmente un lenguaje orientado a objetos basado en prototipos con una sintaxis basada en Java [6] . | [ cita requerida ] |
LPC | 1995 | Lars Pensjö | Desarrollado originalmente para facilitar la construcción de MUD en LPMuds . Aunque está diseñado para el desarrollo de juegos, su flexibilidad lo ha llevado a ser utilizado para una variedad de propósitos. | |
C-- | 1997 | Simon Peyton Jones , Norman Ramsey | Generado principalmente por compiladores para lenguajes de muy alto nivel. | |
mi | 1997 | Mark S. Miller , Dan Bornstein (Comunidades eléctricas) | Diseñado pensando en la informática segura , gracias principalmente al estricto cumplimiento del modelo informático orientado a objetos. | |
C# | 1999 | Anders Hejlsberg ( Microsoft ) | Creado con el nombre "Cool", es sintácticamente muy similar a Java, aunque con un sistema de tipos unificado similar a Smalltalk . | |
Ch | 2001 | Harry Cheng | Lenguaje de scripting AC / C ++ con extensiones para programación de shell y computación numérica. | [7] [8] |
D | 2001 | Walter Bright ( Marte digital ) | Basado en C ++, pero con una sintaxis incompatible que tiene rasgos de otros lenguajes similares a C como Java y C #. | |
Ciclón | 2001 | Greg Morrisett ( laboratorios de AT&T ) | Destinado a ser un dialecto seguro de la lengua C. Está diseñado para evitar desbordamientos de búfer y otras vulnerabilidades que son endémicas en los programas C, sin perder el poder y la conveniencia de C como herramienta para la programación del sistema. | |
Cg | 2002 | Nvidia | Basado en el lenguaje de programación C y aunque comparten la misma sintaxis, se modificaron algunas características de C y se agregaron nuevos tipos de datos para hacer que Cg sea más adecuado para programar unidades de procesamiento de gráficos. Este lenguaje solo es adecuado para la programación de GPU y no es un lenguaje de programación general. | |
LSL | 2003 | ? | Creado para el mundo virtual Second Life por Linden Lab . | |
Ardilla | 2003 | Alberto Demichelis | Un lenguaje de secuencias de comandos ligero. | |
Paralelo unificado C | 2003 | ? | Una extensión del lenguaje de programación C diseñada para computación de alto rendimiento en máquinas paralelas a gran escala. | |
CE | 2004 | Jérôme Jacovella-St-Louis (Ecere) | Un superconjunto de C que agrega características orientadas a objetos (inspiradas en C ++), propiedades, módulos dinámicos y reflexión desarrollado como parte del proyecto Ecere SDK, un SDK multiplataforma de código abierto. | |
Semilla7 | 2005 | Thomas Mertes | Un lenguaje de programación extensible de uso general. | |
BitC | 2006 | Universidad Johns Hopkins | Tiene como objetivo apoyar la verificación formal del programa. | |
Fortaleza | 2006 | Laboratorios solares | Un lenguaje de programación experimental para computación de alto rendimiento, creado por Sun Microsystems con financiamiento del proyecto High Productivity Computing Systems de DARPA. | [9] |
No exactamente C (NXC) | 2006 | John Hansen | Un lenguaje de programación de alto nivel para Lego Mindstorms NXT . NXC, que es la abreviatura de Not eXactly C, se basa en Next Byte Codes, un lenguaje ensamblador. NXC tiene una sintaxis como C. Es parte del IDE BricX que integra el editor, las herramientas para interactuar con el ladrillo y el compilador, pero admite más lenguajes. | [10] |
Ir | 2007 | Rob Pike , Ken Thompson y Robert Griesemer ( Google ) | Lanzado al público en 2009, es un lenguaje concurrente con compilaciones rápidas, sintaxis similar a Java, pero sin funciones orientadas a objetos y mecanografía sólida . | |
OpenCL C | 2009 | Apple , Grupo Khronos | OpenCL especifica un subconjunto modificado del lenguaje de programación C para escribir programas que se ejecutan en varios dispositivos informáticos (por ejemplo, GPU, DSP). | |
C 0 | 2010 | Rob Arnold (CMU) | Un subconjunto seguro de C con punteros comprobados y matrices comprobadas por límites. Creado para los cursos de introducción a la informática de CMU . | [11] |
Rápido | 2014 | Chris Lattner ( Apple ) | Swift puede importar cualquier biblioteca C, opcionalmente anotando encabezados C para mapear tipos C a objetos Swift [12] e importar bibliotecas como módulos Swift. [13] Swift tiene un puente bidireccional con Objective-C en plataformas que admiten el tiempo de ejecución de Objective-C de Apple. A diferencia de Objective-C, Swift actualmente no admite la interoperación de C ++ ni expone los tipos de Swift como estructuras de C. | |
Capilla | 2009 | Cray Inc. | Tiene como objetivo mejorar la capacidad de programación de los ordenadores paralelos en general y del sistema Cray Cascade en particular. | |
Nim | 2008 | Andreas Rumpf | Un lenguaje de programación compilado imperativo, de múltiples paradigmas. | |
Nemerle | 2003 | Andreas Rumpf | Un lenguaje de programación de tipo estático de alto nivel de propósito general diseñado para plataformas que utilizan Common Language Infrastructure (.NET / Mono). | |
ApeScript | ? | ? | Un lenguaje procedimental de tipo dinámico interpretado. | |
Amiga E | 1993 | Wouter van Oortmerssen | Una combinación de muchas características de varios lenguajes, pero sigue más de cerca el lenguaje de programación C original en términos de conceptos básicos. | |
HolyC | 2005 | Terry A. Davis | Un dialecto de C para el propio sistema operativo de Terry, TempleOS . Los cambios más notables son el paso de argumentos, la denominación del tipo de variable (U8 en lugar de unsigned char, I32 en lugar de int, etc.), la estructura del código ("No hay una función main (). Cualquier código fuera de las funciones se ejecuta al inicio , en orden " [14] ), cambiar la estructura de la instrucción y la sustitución de algunas partes del preprocesador, como la eliminación de #define y el uso de '$' como carácter de escape. | |
Lite-C | 2007 | Atari Inc | Un lenguaje de programación para aplicaciones multimedia y juegos de computadora personal, que utiliza un subconjunto de sintaxis del lenguaje C con algunos elementos del lenguaje C ++. | |
No del todo C (NQC) | ~ 1998 | David Baum | Un lenguaje de programación de sistemas embebidos , una interfaz de programación de aplicaciones (API) y un kit de herramientas de compilador de código de bytes nativo para la plataforma Lego Mindstorms RCX, los sistemas Cybermaster y LEGO Spybotics. Está diseñado como un reemplazo directo del ROBOLAB IDE basado en LabVIEW . Se basa principalmente en el lenguaje C, pero tiene limitaciones específicas, como el número máximo de subrutinas y variables permitidas. Posteriormente reemplazado por NXC , una versión mejorada creada para la plataforma Mindstorms NXT. | [15] |
roble | 1991 | James Gosling ( Sun Microsystems ) | Un lenguaje de programación creado inicialmente para el proyecto de decodificadores de Sun Microsystems. Posteriormente, el lenguaje evolucionó hasta convertirse en Java. | |
Handel-C | 1996 | Laboratorio de Computación de la Universidad de Oxford | Un lenguaje de programación de alto nivel que apunta al hardware de bajo nivel, más comúnmente utilizado en la programación de FPGA. Es un subconjunto rico de C. | |
Dardo | 2013 | Lars Bak y Kasper Lund ( Google ) | Un lenguaje orientado a objetos, de herencia única y basado en clases con sintaxis de estilo C. | |
CINT | 1997-1999? | Masaharu Goto | Una versión interpretada de C / C ++, al igual que BeanShell es una versión interpretada de Java. | |
R | 1993 | Ross Ihaka y Robert Gentleman | Un lenguaje de programación y un entorno de software para gráficos y computación estadística. | |
Cortar a tajos | 2014 | Julien Verlaguet, Alok Menghrajani, Drew Paroski ( Facebook ) | Un lenguaje de programación para la máquina virtual HipHop (HHVM). | |
Encanto | 1996 | ? | Un lenguaje de programación de computadoras orientado a objetos con similitudes con los lenguajes RTL / 2, Pascal y C, además de contener algunas características únicas. | |
Claire | 1994 | Yves Caseau | Un lenguaje de programación funcional y orientado a objetos de alto nivel con capacidades de procesamiento de reglas. | |
Noop | 2009 | Intenta combinar las mejores características de los lenguajes "antiguos" y "nuevos", al tiempo que fomenta sintácticamente las buenas prácticas de programación. | ||
Neko | 2005 | Nicolas Cannasse ( Motion-Twin ) | Un lenguaje de programación de alto nivel escrito dinámicamente. | |
Axum | 2009 | Microsoft | Un lenguaje de programación concurrente de dominio específico, basado en el modelo Actor. | |
Oxido | 2010 | Graydon Hoare ( Mozilla ) | Un lenguaje que permite a todos crear software confiable y eficiente. | |
Mecanografiado | 2012 | Microsoft | Superconjunto de JavaScript. | |
Umple | 2008 | Universidad de Ottawa | Un lenguaje tanto para la programación orientada a objetos como para el modelado con diagramas de clases y diagramas de estado. | |
TOM (lenguaje de programación orientado a objetos) | Decenio de 1990 | ? | Un lenguaje de programación orientado a objetos que se basa en las lecciones aprendidas de Objective-C. | |
Fantom | 2005 | Brian Frank y Andy Frank | Un actor funcional, orientado a objetos, concurrente con un sistema de tipos con capacidad nula que enfatiza el pragmatismo en la construcción de sistemas empresariales que se ejecutan sobre JVM, CLR o JavaScript. | |
nesC | Desconocido | Desconocido | Pronunciado "NES-see", es una extensión del lenguaje de programación C diseñado para incorporar los conceptos de estructuración y el modelo de ejecución de TinyOS. TinyOS es un sistema operativo controlado por eventos diseñado para nodos de redes de sensores que tienen recursos muy limitados. | [dieciséis] |
Zig | 2015 | Andrew Kelley | Un lenguaje de programación de uso general y una cadena de herramientas para mantener un software robusto, óptimo y reutilizable. | [17] |
Referencias
- ^ a b "La familia C" . linuxfinances.info . Consultado el 30 de diciembre de 2015 .
- ^ http://cdn.oreillystatic.com/en/assets/1/event/45/Go%20Presentation.pdf
- ^ "Página de información de la biblioteca S-Lang" .
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 5 de marzo de 2016 . Consultado el 11 de mayo de 2015 .CS1 maint: copia archivada como título ( enlace )
- ^ "Manual de referencia del lenguaje Alef" .
- ^ "Capítulo 4. Cómo se creó JavaScript" . speakjs.com . Archivado desde el original el 27 de febrero de 2020 . Consultado el 13 de junio de 2020 .
- ^ "Computación Científica Numérica" .
- ^ "Programación de Shell de Ch multiplataforma" .
- ^ "Proyecto Fortaleza: Wiki: Inicio - Proyecto Kenai" . Archivado desde el original el 12 de enero de 2013 . Consultado el 11 de mayo de 2015 .
- ^ "NXC - No exactamente C" .
- ^ http://reports-archive.adm.cs.cmu.edu/anon/2010/CMU-CS-10-145.pdf
- ^ https://github.com/apple/swift-evolution/blob/master/proposals/0044-import-as-member.md
- ^ https://github.com/apple/swift-evolution/blob/master/proposals/0038-swiftpm-c-language-targets.md
- ^ "El sistema operativo del templo" . 2017-03-25. Archivado desde el original el 25 de marzo de 2017 . Consultado el 16 de abril de 2019 .
- ^ "NQC - No del todo C" .
- ^ GitHub - tinyos / nesc: repositorio principal de nesc. , TinyOS, 2019-03-05 , consultado el 2019-03-17
- ^ "El lenguaje de programación Zig" .