No existe un esquema de clasificación general para los lenguajes de programación. Por lo tanto, en muchos casos, un idioma se incluye en varios encabezados.
34 lenguajes basados en clases orientados a objetos
34.1 Envío múltiple
34.2 Envío único
35 lenguajes basados en prototipos orientados a objetos
36 idiomas de reglas de fuera de juego
37 idiomas de procedimiento
38 idiomas de consulta
39 Lenguaje reflexivo
40 lenguajes basados en reglas
41 lenguajes de secuencias de comandos
42 idiomas basados en pilas
43 idiomas síncronos
44 idiomas de sombreado
44.1 Renderizado en tiempo real
44.2 Renderizado sin conexión
45 lenguajes de manejo de sintaxis
46 idiomas del sistema
47 lenguajes de transformación
48 lenguajes visuales
49 idiomas Wirth
50 lenguajes basados en XML
51 Véase también
52 notas
53 referencias
Idiomas de matriz
Categoría principal: lenguajes de programación de matrices
Los lenguajes de programación de matrices (también denominados vectoriales o multidimensionales ) generalizan las operaciones en escalares para aplicarlas de forma transparente a vectores , matrices y matrices de dimensiones superiores .
A +
Analytica
APL
BÁSICO
Capilla
Fortran 90
FreeMat
GAUSS
Lenguaje de datos interactivo (IDL)
J
Julia
K
MATLAB
Octava
Q
R
S
Scilab
Jerga
SecuenciaL
Speakeasy
Wolfram Language
X10
ZPL
Lenguajes de ensamblaje
Artículo principal: lenguaje ensamblador
Los lenguajes ensambladores corresponden directamente a un lenguaje de máquina (ver más abajo ), aunque puede que no haya un mapeo 1-1 entre una declaración individual y una instrucción individual, por lo que las instrucciones de código de máquina aparecen en una forma comprensible para los humanos. Los lenguajes ensambladores permiten a los programadores usar direcciones simbólicas, que el ensamblador convierte en direcciones absolutas o reubicables . La mayoría de los ensambladores también admiten macros y constantes simbólicas .
Idiomas de autoría
Artículo principal: Lenguaje de autor
Un lenguaje de autoría es un lenguaje de programación diseñado para que lo utilice un no experto en informática para crear fácilmente tutoriales, sitios web y otros programas informáticos interactivos.
Arquitectura de tipificación de información de Darwin (DITA)
Lazo
PILOTO
TUTOR
Authorware
Lenguajes de programación de restricciones
Artículo principal: Programación de restricciones
Un lenguaje de programación de restricciones es un lenguaje de programación declarativo donde las relaciones entre las variables se expresan como restricciones . La ejecución procede intentando encontrar valores para las variables que satisfacen todas las restricciones declaradas.
Reglas de manejo de restricciones
Eclipse
Idiomas de la interfaz de línea de comandos
Los lenguajes de la interfaz de línea de comandos (CLI) también se denominan lenguajes por lotes o lenguajes de control de trabajos. Ejemplos:
4DOS (shell de línea de comandos extendido para PC IBM )
4OS2 (shell de línea de comandos extendido para PC IBM )
bash (el shell Bourne-Again de GNU , Free Software Foundation (FSF))
CLIST ( Lista de comandos de MVS )
CMS EXEC
csh y tcsh (shell similar a C de Bill Joy en UC Berkeley )
Lenguaje de comandos DIGITAL (DCL): lenguaje CLI estándar para VMS ( DEC , Compaq , HP )
Lenguaje por lotes DOS (CLI estándar / lenguaje por lotes para IBM PC con sistemas operativos DOS , popular antes de Windows )
EJEC. 2
Expect (una herramienta de prueba y automatización de Unix )
pescado (un caparazón de Unix )
Cáscara de Hamilton C (una cáscara de C para Windows)
ksh (un shell estándar de Unix , escrito por David Korn )
Rc (shell de línea de comandos para Plan 9 )
Rexx
sh (el shell estándar de Unix , escrito por Stephen R. Bourne )
TACL (lenguaje de comandos avanzado en tándem)
Lenguaje por lotes de Windows ( lenguaje de archivos por lotes de Windows como lo entienden COMMAND.COM y CMD.EXE )
Windows PowerShell ( CLI basada en .NET )
zsh (un shell de Unix )
Idiomas compilados
Estos son lenguajes típicamente procesados por compiladores , aunque teóricamente cualquier lenguaje puede ser compilado o interpretado [ cita requerida ] . Consulte también el lenguaje compilado .
ActionScript
Ada (lenguaje polivalente)
ALGOL (diseño de lenguaje muy influyente; el segundo compilador de lenguaje de alto nivel)
PEQUEÑA máquina ALGOL como lenguaje
Ballerina (compilado en un código de bytes específico de Ballerina Runtime (BVM))
BASIC (algunos dialectos, incluida la primera versión de Dartmouth BASIC)
BCPL
C (uno de los lenguajes de procedimiento más utilizados)
C ++ (lenguaje multiparadigma ampliamente utilizado derivado de C)
C # (compilado en CIL , genera una imagen nativa en tiempo de ejecución)
Ceilán (compilado en código de bytes JVM )
ENFRIAR
CLIPPER 5.3 (lenguaje de programación para software basado en DOS)
CLEO (lenguaje claro para expresar órdenes) en las computadoras Leo británicas
Clojure (compilado en código de bytes JVM )
COBOL
Cobra
Lisp común
Cristal
Rizo
D (de una reingeniería de C ++)
DASL se compila en Java, JavaScript, JSP, Flex, etc. como archivo .war
Delphi ( Borland 's Object Pascal sistema de desarrollo)
DIBOL (Lenguaje digital interactivo orientado a los negocios)
Dylan
CE
Eiffel (lenguaje orientado a objetos desarrollado por Bertrand Meyer )
Sather
Ubercode
Olmo
Emacs Lisp
Esmeralda
Erlang
F # (compilado en CIL , para generar una imagen en tiempo de ejecución)
Factor
Fortran (la primera de alto nivel, lenguaje compilado, de IBM 's John Backus )
GAUSS
Ir
Gosu (compilado en código de bytes JVM )
Groovy (compilado en código de bytes JVM )
Haskell
Puerto
Java (generalmente compilado en código de bytes JVM, aunque existen compiladores con anticipación (AOT) que se compilan en código de máquina )
JOVIAL
Julia (compilado sobre la marcha en código de máquina)
Kotlin (Kotlin / Native usa LLVM para producir binarios nativos)
LabVIEW
Mercurio
Colina baja
Nemerle (compilado en código de bytes de lenguaje intermedio)
Nim
C objetivo
PAG
Pascal (la mayoría de las implementaciones)
PL / I (lenguaje de propósito general, originalmente para mainframes IBM)
Más
Python (se compila en un código de bytes de VM intermedio )
RPG (Generador de programas de informes)
Oxido
Scala (compilado en código de bytes JVM )
Esquema (algunas implementaciones, por ejemplo, Gambit)
SequenceL : puramente funcional, paralelizado automáticamente y sin carreras
Simula (primer lenguaje orientado a objetos, un superconjunto de ALGOL 60 )
Smalltalk se compila en una plataforma independiente de código de bytes para una máquina virtual
Rápido
ML
ML estándar (SML)
Alicia
OCaml
Turing
Vala (compilador para el sistema de tipos GObject)
Visual Basic (use Common Intermediate Language (CIL) que es JIT compilado en un tiempo de ejecución nativo)
Visual FoxPro
Prólogo visual
Xojo
Idiomas concurrentes
Categoría principal: lenguajes de programación concurrentes
Para obtener una lista más completa, consulte Lista de lenguajes de programación simultáneos y paralelos .
Los lenguajes de paso de mensajes proporcionan construcciones de lenguaje para la simultaneidad . El paradigma predominante para la concurrencia en lenguajes convencionales como Java es la concurrencia de memoria compartida . Los lenguajes concurrentes que hacen uso del paso de mensajes generalmente se han inspirado en cálculos de procesos como los procesos secuenciales de comunicación (CSP) o el cálculo π .
Ada - lenguaje multiusos
Alef : lenguaje concurrente con hilos y paso de mensajes, utilizado para la programación de sistemas en las primeras versiones de Plan 9 de Bell Labs.
Ateji PX una extensión del lenguaje Java para el paralelismo
Ballerina : un lenguaje diseñado para implementar y orquestar microservicios. Proporciona un modelo de simultaneidad primero paralelo basado en mensajes.
ChucK : lenguaje de programación específico de dominio para audio, control preciso sobre la concurrencia y la sincronización
Cilk - una C concurrente
Cω - C Omega, un lenguaje de investigación que extiende C #, usa comunicación asincrónica
Clojure : un dialecto de Lisp para la máquina virtual Java
Capilla
Coarreglo Fortran
Pascal concurrente (por Brinch-Hansen)
Curry
E : utiliza promesas, garantiza que no se produzcan interbloqueos
Eiffel (a través del mecanismo SCOOP , Computación simple concurrente orientada a objetos)
Elixir (se ejecuta en Erlang VM)
Esmeralda : utiliza hilos y monitores.
Erlang : utiliza el paso de mensajes asincrónicos sin nada compartido
Esquema de gambito : uso de la biblioteca de termitas
Ir
Haskell : admite programación simultánea, distribuida y paralela en varias máquinas
Java
Únase a Java - lenguaje concurrente basado en Java
X10
Julia
Joule : lenguaje de flujo de datos, se comunica mediante el paso de mensajes
Limbo - pariente de Alef , utilizado para la programación de sistemas en Inferno (sistema operativo)
MultiLisp : variante de esquema extendida para admitir el paralelismo
occam : fuertemente influenciado por la comunicación de procesos secuenciales (CSP)
occam-π - una variante moderna de occam , que incorpora ideas del cálculo π de Milner
Orco
Oz : lenguaje multiparadigma, admite la concurrencia de estado compartido y el paso de mensajes, y futuros, y multiplataforma del sistema de programación Mozart Oz
PAG
Pict - esencialmente una implementación ejecutable del cálculo π de Milner
Python : utiliza paralelismo basado en subprocesos y paralelismo basado en procesos [1]
Oxido
Scala : implementa actores de estilo Erlang en la JVM
SequenceL : puramente funcional, paralelizado automáticamente y sin carreras
SR - lenguaje de investigación
Paralelo unificado C
XProc : lenguaje de procesamiento XML que permite la concurrencia
Idiomas entre corchetes
Los lenguajes de programación con corchetes o llaves tienen una sintaxis que define bloques de instrucciones usando los caracteres de corchetes o llaves {y} . Esta sintaxis se originó con BCPL (1966), y fue popularizado por C . Muchos lenguajes de corchetes descienden o están fuertemente influenciados por C.Ejemplos de lenguajes de corchetes incluyen:
ABCL / c +
Alef
Limbo
Ir
AWK
B
antes de Cristo
BCPL
Bailarina
C - desarrollado alrededor de 1970 en Bell Labs
C ++
C#
Ceilán
ChucK - lenguaje de programación de audio
Cilk - C concurrente para programación paralela multiproceso
Cyclone : una variante C más segura
D
Dardo
DASL : basado en Java
mi
CE
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Mecanografiado
GLSL
HLSL
ICI
Java
Procesando
Groovy
Únete a Java
Kotlin
Té
X10
LPC
MEL
Nemerle : combina características de C # y ML, proporciona capacidades de extensión de sintaxis
PCASTL
Perl
PHP
Pico
Lucio
Potencia Shell
R
Oxido
Jerga
Scala (llaves opcionales)
sed
Súper colisionador
Rápido
UnrealScript
Yorick
YASS
Idiomas de flujo de datos
Los lenguajes de programación de flujo de datos se basan en una representación (generalmente visual) del flujo de datos para especificar el programa. Se utiliza con frecuencia para reaccionar ante eventos discretos o para procesar flujos de datos. Los ejemplos de lenguajes de flujo de datos incluyen:
Analytica
BMDFM
Oleoductos Hartmann
G (usado en LabVIEW )
Lúcido
Max
Onz
Prograph
Datos puros
Reaktor
StreamBase StreamSQL EventFlow
VEE
VHDL
VisSim
Vvvv
Flujo de WebMethods
Bailarina
Swift (lenguaje de secuencias de comandos en paralelo)
Lenguajes orientados a datos
Los lenguajes orientados a datos proporcionan formas poderosas de buscar y manipular las relaciones que se han descrito como tablas de relación de entidades que mapean un conjunto de cosas en otros conjuntos. [ cita requerida ] Ejemplos de lenguajes orientados a datos incluyen:
Clarín
Clíper
dBase un lenguaje de acceso a bases de datos relacionales
Duendecillo
MUMPS (un lenguaje de propósito general estándar ANSI con especializaciones para el trabajo de bases de datos)
Caché (similar a MUMPS)
RDQL
SPARQL
SQL
Tutorial D - ver también El tercer manifiesto
Visual FoxPro : un motor RDBMS nativo, orientado a objetos, RAD
WebDNA
Wolfram Language
Idiomas de la tabla de decisiones
Las tablas de decisiones se pueden utilizar como ayuda para aclarar la lógica antes de escribir un programa en cualquier idioma, pero en la década de 1960 se desarrollaron varios lenguajes en los que la lógica principal se expresa directamente en forma de tabla de decisiones, que incluyen:
Filetab
Lenguajes declarativos
Categoría principal: lenguajes de programación declarativos
Los lenguajes declarativos expresan la lógica de un cálculo sin describir en detalle su flujo de control. La programación declarativa contrasta con la programación imperativa a través de lenguajes de programación imperativos, donde el flujo de control se especifica mediante órdenes en serie (imperativos). Los lenguajes de programación (puros) funcionales y basados en lógica también son declarativos y constituyen las principales subcategorías de la categoría declarativa. Esta sección enumera ejemplos adicionales que no están en esas subcategorías.
Analytica
Ant (combina programación declarativa y programación imperativa )
Curry
Cifrar
Lenguaje de especificación de aplicaciones distribuidas (DASL) (combina programación declarativa y programación imperativa )
ECL
Duendecillo
Lustre
Mercurio
MetaPost
Modelica
Prólogo
QML
Onz
RDQL
SequenceL : puramente funcional, paralelizado automáticamente y sin carreras
SPARQL
SQL (solo DQL, no DDL, DCL y DML)
Wolfram Language
xBase
Transformaciones XSL
Idiomas incrustables
En código fuente
Los lenguajes incrustables de origen incrustan pequeños fragmentos de código ejecutable dentro de un fragmento de texto de forma libre, a menudo una página web.
Los lenguajes integrados del lado del cliente están limitados por las capacidades del navegador o del cliente previsto. Su objetivo es dinamizar las páginas web sin necesidad de volver a contactar con el servidor.
Los lenguajes integrados del lado del servidor son mucho más flexibles, ya que casi cualquier idioma puede integrarse en un servidor. El objetivo de tener fragmentos de código del lado del servidor incrustados en una página web es generar marcas adicionales de forma dinámica; el código en sí mismo desaparece cuando se sirve la página, para ser reemplazado por su salida.
Lado del servidor
PHP
VBScript
SMX: dedicado a páginas web
Tcl : del lado del servidor en NaviServer y un componente esencial en los sistemas de la industria electrónica
WebDNA : dedicado a sitios web basados en bases de datos
Los ejemplos anteriores están especialmente dedicados a este propósito. Se pueden adaptar una gran cantidad de otros lenguajes, como Erlang , Scala , Perl y Ruby (por ejemplo, convirtiéndolos en módulos de Apache ).
Lado del cliente
ActionScript
JavaScript (también conocido como ECMAScript o JScript)
VBScript (solo Windows)
En código objeto
Se puede incrustar una amplia variedad de lenguajes dinámicos o de secuencias de comandos en el código ejecutable compilado. Básicamente, el código objeto para el intérprete del lenguaje debe estar vinculado al ejecutable. Los fragmentos de código fuente para el lenguaje incorporado se pueden pasar a una función de evaluación como cadenas. Los lenguajes de control de aplicaciones pueden implementarse de esta manera, si el usuario ingresa el código fuente. Se prefieren los idiomas con pequeños intérpretes.
AngelScript
Ch
ANGUILA
Io
Julia
Lua
Pitón
Ruby (a través de mruby )
Ardilla
Tcl
Lenguajes de programación educativos
Para obtener una lista más completa, consulte Lista de lenguajes de programación educativos .
Idiomas desarrollados principalmente con el propósito de enseñar y aprender programación.
Alicia
Blockly
Catrobat
COMAL
Vivacidad
Esmeralda
Ezhil
Logo
KTurtle
Modula-2
Pascal
Raqueta
Esquema
Rasguño
¡Quebrar!
Turing
Wolfram Language
Lenguas esotéricas
Categoría principal: lenguajes de programación esotéricos
Un lenguaje de programación esotérico es un lenguaje de programación diseñado como una prueba de los límites del diseño del lenguaje de programación de computadoras, como una prueba de concepto o como una broma.
Beatnik
Befunge
Brainfuck
Cocinero
INTERCAL
LOLCODE
Malbolge
Piet
Shakespeare
Jue
Espacio en blanco
Idiomas de extensión
Los lenguajes de programación de extensión son lenguajes incrustados en otro programa y se utilizan para aprovechar sus características en los scripts de extensión.
AutoLISP (específico de AutoCAD )
BeanShell
CALIFORNIA
C / AL (C / LADO)
Engaño
Emacs Lisp
JavaScript y algunos dialectos, por ejemplo, JScript
Lua (incrustado en muchos juegos)
OpenCL (extensión de C y C ++ para usar la GPU y extensiones paralelas de la CPU)
OptimJ (extensión de Java con soporte de lenguaje para escribir modelos de optimización y poderosas abstracciones para procesamiento de datos masivos)
Perl
Lucio
Python (incrustado en Maya, Blender y otros paquetes de animación 3-D)
Rexx
Ruby (Google SketchUp)
Jerga
SQL
Ardilla
Tcl
Secuencia de comandos de Vim (vim)
Visual Basic para aplicaciones (VBA)
Windows PowerShell
Idiomas de cuarta generación
Categoría principal: lenguajes de programación de cuarta generación
Los lenguajes de programación de cuarta generación son lenguajes de alto nivel construidos alrededor de sistemas de bases de datos. Generalmente se utilizan en entornos comerciales.
1C: lenguaje de programación empresarial
ABAP
CorVision
GraphTalk de CSC
CA-IDEAL (Entorno de desarrollo interactivo para la vida de una aplicación) para usar con CA-DATACOM / DB
Generador de informes Easytrieve (ahora CA-Easytrieve Plus)
ATENCIÓN
IBM Informix-4GL
LINC 4GL
MAPPER ( Unisys / Sperry ) - ahora parte de BIS
MARK-IV ( Sterling / Informatics ) ahora VISIÓN: CONSTRUCTOR de CA
NATURAL
Progreso 4GL
PV-Wave
LiveCode (no se basa en una base de datos; aún así, el objetivo es trabajar a un nivel de abstracción más alto que los 3GL)
SAS
SQL
Ubercode (VHLL o lenguaje de muy alto nivel)
Uniface
Visual DataFlex
Visual FoxPro
xBase
Lenguajes funcionales
Categoría principal: lenguajes funcionales
Los lenguajes de programación funcional definen programas y subrutinas como funciones matemáticas y las tratan como de primera clase. Muchos de los llamados lenguajes funcionales son "impuros" y contienen características imperativas. Muchos lenguajes funcionales están vinculados a herramientas de cálculo matemático. Los lenguajes funcionales incluyen:
Puro
Agda
Limpio
Coq (Gallina)
Cuneiforme
Curry
Olmo
Futhark
Haskell
Esperar
Idris
Alegría
Inclinarse
Mercurio
Miranda
PureScript
Ur
KRC
SACO
SASL
SecuenciaL
Impuro
APL
ATS
CALIFORNIA
C ++ (desde C ++ 11 )
C#
VB.NET
Ceilán
D
Dardo
Rizo
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Fuente
Erlang
Elixir
LFE
Destello
F#
Flix
Groovy
Brincar
J
Java (desde la versión 8)
Julia
Kotlin
Ceceo
Clojure
Lisp común
Dylan
Emacs Lisp
LFE
Pequeña B
Logo
Esquema
Raqueta (anteriormente PLT Scheme)
Té
Mathematica
ML
ML estándar (SML)
Alicia
OCaml
Nemerle
Nim
Ópalo
OPS5
Perl
PHP
Pitón
Q (lenguaje de programación ecuacional)
Q (lenguaje de programación de Kx Systems)
R
Raku
REBOL
rojo
Rubí
RECHAZAR
Oxido
Scala
Rápido
Hojas de cálculo
Tcl
Wolfram Language
Idiomas de descripción de hardware
Para obtener una lista más completa, consulte Lista de lenguajes de descripción de hardware .
En electrónica, un lenguaje de descripción de hardware (HDL) es un lenguaje informático especializado que se utiliza para describir la estructura, el diseño y el funcionamiento de los circuitos electrónicos y, más comúnmente, los circuitos lógicos digitales. Las dos variedades de HDL más utilizadas y con mejor soporte que se utilizan en la industria son Verilog y VHDL . Los lenguajes de descripción de hardware incluyen:
HDL para diseño de circuitos analógicos
Verilog-AMS (Verilog para señal analógica y mixta)
VHDL-AMS (VHDL con extensión de señal analógica / mixta)
HDL para diseño de circuitos digitales
Lenguaje de expresión booleano avanzado
Lenguaje de descripción de hardware de Altera
Bluespec
Confluencia
ELLA
Handel-C
Impulso C
JHDL
Lava
Lola
MyHDL
PALASMA
Ruby (lenguaje de descripción de hardware)
SystemC
SystemVerilog
Verilog
VHDL (VHSIC HDL)
Idiomas imperativos
Los lenguajes de programación imperativos pueden ser multi-paradigma y aparecer en otras clasificaciones. Aquí hay una lista de lenguajes de programación que siguen el paradigma imperativo :
Ada
ALGOL
BÁSICO
C
C ++
C#
Ceilán
ENFRIAR
COBOL
D
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Fuente
FORTRAN
GAUSS
Ir
Groovy
Java
Julia
Lua
MATLAB
Idiomas de la máquina
Modula-2 , Modula-3
PAPERAS
Nim
OCaml
Oberon
Objeto Pascal
Pascal
Perl
PHP
PL / I
Potencia Shell
PROSA
Pitón
Rubí
Oxido
Speakeasy
Rápido
Tcl
Wolfram Language
Idiomas del modo interactivo
Los lenguajes en modo interactivo actúan como una especie de caparazón: las expresiones o declaraciones se pueden ingresar una a la vez, y el resultado de su evaluación se ve de inmediato. El modo interactivo también se denomina bucle de lectura-evaluación-impresión (REPL).
APL
BÁSICO (algunos dialectos)
Clojure
Lisp común
Dart (con las herramientas de desarrollo de Observatory o Dartium)
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Fuente
Erlang
Elixir (con iex)
F#
Fril
GAUSS
Groovy
Haskell (con el intérprete de GHCi o Hugs)
IDL
J
Java (desde la versión 9)
Julia
Lua
MUMPS (un lenguaje de propósito general estándar ANSI)
Arce
Mathematica ( idioma Wolfram )
MATLAB
ML
OCaml
Perl
PHP
Lucio
Posdata
Prólogo
Pitón
PROSA
R
REBOL
Rexx
Ruby (con IRB )
Scala
Esquema
Smalltalk (en cualquier lugar de un entorno Smalltalk)
S-Lang (con el caparazón S-Lang, slsh)
Speakeasy
Rápido
Tcl (con el shell Tcl, tclsh)
Shell de Unix
Windows PowerShell ( CLI basada en .NET )
Visual FoxPro
Idiomas interpretados
Los lenguajes interpretados son lenguajes de programación en los que un intérprete puede ejecutar programas desde el formato de código fuente. Teóricamente, cualquier idioma se puede compilar o interpretar, por lo que el término idioma interpretado generalmente se refiere a idiomas que generalmente se interpretan en lugar de compilar.
Hormiga
APL
Lenguaje de secuencias de comandos AutoHotkey
Lenguaje de secuencias de comandos AutoIt
BÁSICO (algunos dialectos)
Lenguaje de programación para empresas (PL / B, anteriormente DATABUS, versiones posteriores con compilación opcional agregada)
Eiffel (a través de la tecnología Melting Ice en EiffelStudio )
Emacs Lisp
Idioma de GameMaker
Groovy
J
Julia (compilado sobre la marcha en código de máquina , pero existe un transpilador Julia2C )
JavaScript
Lisp (versiones anteriores, anteriores a 1962 y algunas experimentales; los sistemas Lisp de producción son compiladores, pero muchos de ellos aún proporcionan un intérprete si es necesario)
LPC
Lua
MUMPS (un lenguaje estándar de propósito general ANSI)
Arce
Mathematica
MATLAB
OCaml
Pascal (implementaciones tempranas)
PCASTL
Perl
PHP
Posdata
Potencia Shell
PROSA
Pitón
Rexx
R
REBOL
Rubí
Jerga
Speakeasy
ML estándar (SML)
Girar
Tcl
Té
TorqueScript
lenguaje de scripting thinBasic
VBScript
Windows PowerShell : CLI basada en .NET
Wolfram Language
Algunos lenguajes de secuencias de comandos, a continuación
Lenguajes iterativos
Los lenguajes iterativos se construyen alrededor de generadores de oferta .
Aldor
Alphard
C#
CLU
Cobra
Eiffel , a través de "agentes"
Icono
IPL-v
Julia
Lua
Nim
PHP
Pitón
Sather
Idiomas por tipo de gestión de memoria
Idiomas de recolección de basura
La recolección de basura (GC) es una forma de administración automática de memoria. El recolector de basura intenta recuperar la memoria que fue asignada por el programa pero que ya no se usa.
Artículo principal: Recolección de basura (informática)
APL
C#
Limpio
Cristal
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Fuente
Esmeralda
Erlang
Ir
Groovy
Haskell
Java
Julia
Kotlin
Lisp (creador)
Arco
Clojure
Lisp común
Dylan
Emacs Lisp
Raqueta
Esquema
Logo
Lua
ML
ML estándar (SML)
Alicia
OCaml
Nim (lenguaje de programación)
Perl
PHP
Potencia Shell
Pitón
Rubí
Charla
Idiomas con gestión de memoria manual
Esta sección necesita expansión . Puedes ayudar agregando más . ( Noviembre de 2016 )
Ada
C
C ++
Fortran
Pascal
Oxido
C objetivo
Zig
Idiomas con gestión de memoria determinista
Esta sección necesita expansión . Puedes ayudar agregando más . ( Abril de 2018 )
Ada
C
C ++
Fortran
Pascal
Óxido [2] [3]
C objetivo
Zig
Idiomas con recuento automático de referencias (ARC)
Esta sección necesita expansión . Puedes ayudar agregando más . ( Septiembre de 2018 )
C objetivo
Perl
Rápido
Visual Basic
Xojo
Lenguajes basados en listas: LISP
Los lenguajes basados en listas son un tipo de lenguaje estructurado de datos que se basan en la estructura de datos de listas .
Ceceo
Arco
Clojure
Lisp común
Dylan
Emacs Lisp
Raqueta
Esquema
Logo
Alegría
R
Fuente
Tcl
Té
TRAC
Pequeños lenguajes
Los pequeños lenguajes [4] sirven a un dominio de problemas especializado.
awk : se utiliza para la manipulación de archivos de texto.
Cometa : se utiliza para resolver problemas complejos de optimización combinatoria en áreas como la asignación de recursos y la programación.
sed - analiza y transforma texto
SQL : tiene solo unas pocas palabras clave y no todas las construcciones necesarias para un lenguaje de programación completo [a] : muchos sistemas de administración de bases de datos amplían SQL con construcciones adicionales como un lenguaje de procedimiento almacenado
Lenguajes basados en lógica
Categoría principal: lenguajes de programación lógica
Los lenguajes basados en lógica especifican un conjunto de atributos que debe tener una solución, en lugar de un conjunto de pasos para obtener una solución.
Los lenguajes notables que siguen este paradigma de programación incluyen:
ALF
Alma-0
CLACL (CLAC-Lenguaje)
Curry
Fril
Flix (un lenguaje de programación funcional con restricciones de registro de datos de primera clase)
Janus
λProlog (un lenguaje de programación lógica con tipificación polimórfica, programación modular y programación de orden superior)
Oz y el sistema de programación Mozart multiplataforma Oz
Prólogo (formula datos y el mecanismo de evaluación del programa como una forma especial de lógica matemática llamada lógica de Horn y un mecanismo de prueba general llamado resolución lógica )
Mercurio (basado en Prolog)
Visual Prolog (extensión Prolog orientada a objetos)
CUERDA
Idiomas de la máquina
Los lenguajes de máquina son directamente ejecutables por la CPU de una computadora. Por lo general, se formulan como patrones de bits, generalmente representados en octal o hexadecimal.. Cada patrón de bits hace que los circuitos de la CPU ejecuten una de las operaciones fundamentales del hardware. La activación de entradas eléctricas específicas (p. Ej., Pines del paquete de CPU para microprocesadores) y la configuración lógica para los valores de estado de la CPU controlan el cálculo del procesador. Los lenguajes de máquina individuales son específicos de una familia de procesadores; El código de lenguaje de máquina para una familia de procesadores no puede ejecutarse directamente en procesadores de otra familia a menos que los procesadores en cuestión tengan hardware adicional para soportarlo (por ejemplo, los procesadores DEC VAX incluyen un modo de compatibilidad PDP-11). Son (esencialmente) siempre definidos por el desarrollador de la CPU, no por terceros. La versión simbólica, el lenguaje ensamblador del procesador , también la define el desarrollador, en la mayoría de los casos. Algunos códigos de máquina de uso comúnlos conjuntos de instrucciones son:
BRAZO
Original de 32 bits
Instrucciones Thumb de 16 bits (subconjunto o registros usados)
64 bits (cambio importante en la arquitectura, más registros)
DIC :
18 bits: PDP-1 , PDP-4 , PDP-7 , PDP-9 , PDP-15
12 bits: PDP-5 , PDP-8 , LINC-8 , PDP-12
36 bits: PDP-6 , PDP-10 , DECSYSTEM-20
16 bits: PDP-11 (VAX y M68000 influenciados)
32 bits: VAX
64 bits: Alfa
Intel 8008 , 8080 y 8085
Zilog Z80
x86 :
X86 de 16 bits , utilizado por primera vez en Intel 8086
Intel 8086 y 8088 (este último se usó en la primera y temprana IBM PC )
Intel 80186
Intel 80286 (el primer procesador x86 con modo protegido , utilizado en IBM AT )
IA-32 , introducido en el 80386
x86-64 La especificación original fue creada por AMD . Hay variantes de proveedores, pero son esencialmente las mismas:
AMD 64
Intel Intel 64
IBM [b]
305
650
701
702 , 705 y 7080
704 , 709 , 7040 , 7044, 7090 , 7094
Serie 1400 , 7010
7030
7070
System / 360 y sucesores, incluido z / Architecture
MIPS
Motorola 6800
Familia Motorola 68000 (CPU utilizadas en las primeras computadoras Apple Macintosh y Sun )
Tecnología MOS 65xx
6502 (CPU para VIC-20 , Apple II y Atari 800 )
6510 (CPU para Commodore 64 )
Western Design Center 65816/65802 (CPU para Apple IIGS y (variante) Super Nintendo Entertainment System )
National Semiconductor NS320xx
POWER , utilizado por primera vez en IBM RS / 6000
PowerPC : se utiliza en Power Macintosh y en muchas consolas de juegos , en particular de la séptima generación .
Energía ISA
Sun Microsystems (ahora Oracle ) SPARC
UNIVAC [b]
Computadoras de 30 bits: 490 , 492, 494, 1230
Computadoras de 36 bits
1101 , 1103 , 1105
Serie 1100/2200
MCST Elbrus 2000
Macro lenguajes
Categoría principal: lenguajes de programación de macros
Macro lenguajes de sustitución textual
Los lenguajes de macros transforman un archivo de código fuente en otro. Una "macro" es esencialmente un fragmento de texto corto que se expande en uno más largo (que no debe confundirse con macros higiénicas ), posiblemente con sustitución de parámetros. A menudo se utilizan para preprocesar el código fuente. Los preprocesadores también pueden proporcionar funciones como la inclusión de archivos .
Los lenguajes de macros pueden limitarse a actuar en regiones de código especialmente etiquetadas (prefijadas con a #en el caso del preprocesador de C). Alternativamente, puede que no, pero en este caso todavía es a menudo indeseable (por ejemplo) expandir una macro incrustada en un literal de cadena , por lo que aún necesitan un conocimiento rudimentario de la sintaxis. Siendo ese el caso, a menudo siguen siendo aplicables a más de un idioma. Contraste con los lenguajes incrustables en código fuente como PHP , que tienen todas las funciones.
cpp (el preprocesador de C)
m4 (originalmente de AT&T, incluido con Unix)
ML / I (macroprocesador de propósito general)
Lenguajes de macros de aplicaciones
Se han incorporado en las aplicaciones lenguajes de secuencias de comandos como Tcl y ECMAScript ( ActionScript , ECMAScript para XML , JavaScript , JScript ). Estos a veces se denominan "lenguajes macro", aunque en un sentido algo diferente a las macros de sustitución textual como m4 .
Lenguajes de metaprogramación
La metaprogramación es la escritura de programas que escriben o manipulan otros programas, incluidos ellos mismos, como sus datos o que hacen parte del trabajo que de otro modo se realiza en tiempo de ejecución durante el tiempo de compilación . En muchos casos, esto permite a los programadores hacer más en la misma cantidad de tiempo que les tomaría escribir todo el código manualmente.
C ++
CWIC
Rizo
D
CE
Emacs Lisp
Elixir
F#
Groovy
Haskell
Julia
Ceceo
Lua
Sistema Maude
Mathematica
META II (y META I, un subconjunto)
MetaOCaml
Nemerle
Nim
Perl
Pitón
Rubí
Óxido [5]
Esquema
SecuenciaL
Charla
Fuente
TREEMETA
Wolfram Language
Idiomas multiparadigmas
Artículo principal: Comparación de lenguajes de programación multi-paradigma
Los lenguajes multiparadigmas admiten más de un paradigma de programación . Permiten que un programa utilice más de un estilo de programación . El objetivo es permitir que los programadores utilicen la mejor herramienta para un trabajo, admitiendo que ningún paradigma resuelve todos los problemas de la manera más fácil o eficiente.
1C: lenguaje de programación empresarial (genérico, imperativo, orientado a objetos, basado en prototipos, funcional)
Ada ( concurrente , distribuido , genérico ( plantilla de metaprogramación ), imperativo , orientado a objetos ( basado en clases ))
ALF ( funcional , lógica )
Alma-0 (restricción, imperativo, lógica)
APL (funcional, imperativo, orientado a objetos (basado en clases))
BETA (funcional, imperativo, orientado a objetos (basado en clases))
C ++ (genérico, imperativo, orientado a objetos (basado en clases), funcional, metaprogramación)
C # (genérico, imperativo, orientado a objetos (basado en clases), funcional, declarativo)
Ceilán (genérico, imperativo, orientado a objetos (basado en clases), funcional, declarativo)
ChucK (imperativo, orientado a objetos, basado en el tiempo, concurrente, sobre la marcha)
Cobra (genérico, imperativo, orientado a objetos (basado en clases), funcional, contractual)
Common Lisp (funcional, imperativo, orientado a objetos (basado en clases), orientado a aspectos (el usuario puede agregar más paradigmas, por ejemplo, lógica))
Curl (funcional, imperativo, orientado a objetos (basado en clases), metaprogramación)
Curry (concurrente, funcional, lógico)
D (genérico, imperativo, funcional, orientado a objetos (basado en clases), metaprogramación)
Delphi Object Pascal (genérico, imperativo, orientado a objetos (basado en clases), metaprogramación)
Dylan (funcional, orientado a objetos (basado en clases))
eC (genérico, imperativo, orientado a objetos (basado en clases))
ECMAScript (funcional, imperativo, orientado a objetos (basado en prototipos))
ActionScript
ECMAScript para XML
JavaScript
JScript
Eiffel (imperativo, orientado a objetos (basado en clases), genérico, funcional (agentes), concurrente (SCOOP))
F # (funcional, genérico, orientado a objetos (basado en clases), orientado al lenguaje)
Fantom (funcional, orientado a objetos (basado en clases))
Go (imperativo, procedimental),
Groovy (funcional, orientado a objetos (basado en clases), imperativo, procedimental)
Puerto
Brincar
J (funcional, imperativo, orientado a objetos (basado en clases))
Julia (imperativo, envío múltiple ("orientado a objetos"), funcional, metaprogramación)
LabVIEW ( flujo de datos , visual )
Lava (orientado a objetos (basado en clases), visual)
Lua (funcional, imperativo, orientado a objetos ( basado en prototipos ))
Mercurio (funcional, lógico, orientado a objetos)
Protocolos de metaobjetos (orientados a objetos (basados en clases, basados en prototipos))
Nemerle (funcional, orientado a objetos (basado en clases), imperativo, metaprogramación)
Objective-C (imperativo, orientado a objetos (basado en clases), reflexivo)
OCaml (funcional, imperativo, orientado a objetos (basado en clases), modular)
Oz (funcional (evaluación: ansioso , perezoso ), lógica, restricción , imperativo, orientado a objetos (basado en clases), concurrente, distribuido) y multiplataforma del sistema de programación Mozart Oz
Object Pascal (imperativo, orientado a objetos (basado en clases))
Perl (imperativo, funcional (no puede ser puramente funcional), orientado a objetos, orientado a clases, orientado a aspectos (a través de módulos))
PHP (imperativo, orientado a objetos, funcional (no puede ser puramente funcional))
Pike (lenguaje de programación dinámico interpretado, de uso general, de alto nivel, multiplataforma)
Prograph (flujo de datos, orientado a objetos (basado en clases), visual)
Python (funcional, compilado, interpretado, orientado a objetos (basado en clases), imperativo, metaprogramación, extensión, impuro, modo interactivo, iterativo, reflexivo, scripting)
R (matriz, interpretado, impuro, modo interactivo, basado en listas, basado en prototipos orientado a objetos, scripting)
Raqueta (funcional, imperativa, orientada a objetos (basada en clases) y puede ser extendida por el usuario)
REBOL (funcional, imperativo, orientado a objetos (basado en prototipos), metaprogramación (dialectado))
Rojo (funcional, imperativo, orientado a objetos (basado en prototipos), metaprogramación (dialectado))
ROOP (imperativo, lógico, orientado a objetos (basado en clases), basado en reglas)
Ruby (imperativo, funcional, orientado a objetos (basado en clases), metaprogramación)
Rust (concurrente, funcional, imperativo, orientado a objetos, genérico, metaprogramación, compilado)
Scala (funcional, orientado a objetos)
Seed7 (imperativo, orientado a objetos, genérico)
SISAL (concurrente, flujo de datos, funcional)
Hojas de cálculo (funcionales, visuales)
Swift (orientado a protocolos, orientado a objetos, funcional, imperativo, estructurado en bloques)
Tcl (funcional, imperativo, orientado a objetos (basado en clases))
Té (funcional, imperativo, orientado a objetos (basado en clases))
Windows PowerShell (funcional, imperativo, canalizado, orientado a objetos (basado en clases))
Wolfram Language
Análisis numérico
Varios lenguajes de programación de propósito general, como C y Python , también se utilizan para la informática técnica, esta lista se centra en lenguajes que se utilizan casi exclusivamente para la informática técnica.
OBJETIVOS
AMPL
Analytica
Fortran
FreeMat
GAUSS
JUEGOS
GNU Octave
Julia
Sistema Klerer-May
Mathematica
MATLAB
PROSA
R
Séneca : una variante de Oberon
Scilab
Wolfram Language
Idiomas distintos del inglés
Artículo principal: lenguajes de programación no basados en inglés
Chino BÁSICO - Chino
Fjölnir - islandés
Lengua Symbolique d'Enseignement - Francés
Lexico - español
Rapira - Ruso
ezhil - tamil
Lenguajes basados en clases orientados a objetos
Los lenguajes de programación orientados a objetos basados en clases admiten objetos definidos por su clase. Las definiciones de clase incluyen datos de miembros. El paso de mensajes es un concepto clave (si no el concepto clave) en los lenguajes orientados a objetos.
Las funciones polimórficas parametrizadas por la clase de algunos de sus argumentos se denominan normalmente métodos. En los lenguajes con envío único , las clases también suelen incluir definiciones de métodos. En lenguajes con distribución múltiple , los métodos se definen mediante funciones genéricas . Hay excepciones en las que los métodos de envío único son funciones genéricas (por ejemplo , el sistema de objetos de Bigloo ).
Envío múltiple
Lisp común
Cecilio
Dylan
Julia (el concepto de "objeto" no está presente en Julia, pero el lenguaje permite el envío múltiple en diferentes tipos en tiempo de ejecución)
Envío único
ActionScript 3.0
Actor
Ada 95 y Ada 2005 (lenguaje polivalente)
APL
BETA
C ++
C#
Ceilán
Oxygene (anteriormente llamado Chrome)
Arrojar
Cobra
Fusión fría
Rizo
D
Lenguaje de especificación de aplicaciones distribuidas (DASL)
Objeto Delphi Pascal
mi
GNU E
CE
Eiffel
Sather
Ubercode
F-Script
Fortran 2003
Fortaleza
Gambas
Idioma de Game Maker
Puerto
J
Java
Procesando
Groovy
Únete a Java
Té
X10
LabVIEW
Lava
Lua
Modula-2 (abstracción de datos, ocultación de información, tipificación fuerte, modularidad completa)
Modula-3 (se agregaron más funciones orientadas a objetos a Modula-2)
Nemerle
NetRexx
Oberon-2 (equivalencia total de orientación a objetos de una manera original, fuertemente tipada, wirthiana)
Objeto Pascal
Objeto REXX
Objective-C (un superconjunto de C que agrega un modelo de objeto derivado de Smalltalk y una sintaxis de paso de mensajes)
OCaml
Oz, sistema de programación Mozart
Perl 5
PHP
Lucio
Prograph
Python (lenguaje interpretativo, opcionalmente orientado a objetos)
Revolution (el programador no puede elegir los objetos)
Rubí
Scala
Speakeasy
Simula (primer lenguaje orientado a objetos, desarrollado por Ole-Johan Dahl y Kristen Nygaard )
Smalltalk (orientación a objetos pura, desarrollado en Xerox PARC )
F-Script
Pequeño Smalltalk
Pharo
Chirrido
Rasguño
IBM VisualAge
VisualWorks
GIRAR
Súper colisionador
VBScript (lenguaje de 'macro scripting' de Microsoft Office)
Visual DataFlex
Visual FoxPro
Prólogo visual
X ++
Xojo
XOTcl
Lenguajes basados en prototipos orientados a objetos
Los lenguajes basados en prototipos son lenguajes orientados a objetos en los que se ha eliminado la distinción entre clases e instancias:
1C: lenguaje de programación empresarial
Lenguaje concurrente basado en actores (ABCL, ABCL / 1, ABCL / R, ABCL / R2, ABCL / c +)
Ágora
Cecilio
ECMAScript
ActionScript
ECMAScript para XML
JavaScript (primero llamado Mocha, luego LiveScript)
JScript
Etoys en Squeak
Io
Lua
MUGIR
NewtonScript
Obliq
R
REBOL
rojo
Self (primer lenguaje basado en prototipos, derivado de Smalltalk )
TADS
Idiomas de reglas fuera de juego
Artículo principal: Regla del fuera de juego § Idiomas de la regla del fuera de juego
Los lenguajes de reglas fuera de juego denotan bloques de código por su sangría .
ISWIM , el lenguaje abstracto que introdujo la regla
ABC , padre de Python
Pitón
Cobra
Abucheo
Genio
Miranda , la madre de Haskell
Orwell
Haskell
Curry
Elixir (, hacer: bloques)
F#
Nim
Occam
GIRAR
Scala (fuera de juego opcional)
Lenguajes de procedimiento
Los lenguajes de programación procedimentales se basan en el concepto de unidad y alcance (el rango de visualización de datos) de una declaración de código ejecutable. Un programa de procedimiento se compone de una o más unidades o módulos, codificados por el usuario o proporcionados en una biblioteca de códigos; cada módulo se compone de uno o más procedimientos, también denominados función, rutina, subrutina o método, según el idioma. Ejemplos de lenguajes de procedimiento incluyen:
Ada (lenguaje polivalente)
ALGOL (diseño de lenguaje muy influyente; el segundo compilador de lenguaje de alto nivel)
PEQUEÑA máquina ALGOL como lenguaje
Alma-0
BÁSICO (estos carecen de la mayoría de la modularidad en (especialmente) versiones anteriores a 1990)
BCPL
FELICIDAD
C
C ++ (C con objetos y mucho más, como genéricos a través de STL)
C # (similar a Java / C ++)
Ceilán
ENFRIAR
ChucK (sintaxis similar a C / Java, con nuevos elementos de sintaxis para tiempo y paralelismo)
COBOL
Cobra
Fusión fría
Lenguaje de programación combinado (CPL)
Rizo
D
Lenguaje de especificación de aplicaciones distribuidas (DASL) (combina programación declarativa y programación imperativa )
CE
ECMAScript
ActionScript
ECMAScript para XML
JavaScript (primero llamado Mocha, luego LiveScript)
JScript
Fuente
Eiffel
Fortran (mejor modularidad en estándares posteriores)
F
GAUSS
Ir
Puerto
HyperTalk
Java
Groovy
Únete a Java
Té
JOVIAL
Julia
Lengua H
Lazo
Modula-2 (fundamentalmente basado en módulos)
Mathematica
MATLAB
Colina baja
MUMPS (el primer lanzamiento fue más modular que otros lenguajes de la época; el estándar se ha vuelto aún más modular desde entonces)
Nemerle
Nim
Oberon , Oberon-2 (seguimientos mejorados, más pequeños, más rápidos y más seguros para Modula-2)
Componente Pascal
Séneca
OCaml
Occam
Mirador
Pascal (sucesor de ALGOL 60, predecesor de Modula-2)
Pascal libre (FPC)
Objeto Pascal , Delphi
PCASTL
Perl
Lucio
SOCIEDAD ANÓNIMA
PL / I (lenguaje de propósito general grande, originalmente para mainframes IBM)
Más
Potencia Shell
PROSA
Pitón
R
Rapira
Juego de rol
Oxido
Jerga
VBScript
Visual Basic
Visual FoxPro
Wolfram Language
Microsoft Dynamics AX (X ++)
Idiomas de consulta
Artículo principal: lenguaje de consulta
Lenguaje reflexivo
Los lenguajes reflexivos permiten a los programas examinar y posiblemente modificar su estructura de alto nivel en tiempo de ejecución o en tiempo de compilación. Esto es más común en lenguajes de programación de la máquina virtual de alto nivel como Smalltalk , y menos común en los lenguajes de programación de bajo nivel como C . Idiomas y plataformas que apoyan la reflexión:
Ver también: Programación orientada a aspectos
Befunge
Ceilán
Encanto
Arrojar
CLI
C#
Cobra
Componente Pascal BlackBox Component Builder
Rizo
Cifrar
Objeto Delphi Pascal
CE
ECMAScript
ActionScript
ECMAScript para XML
JavaScript
JScript
Emacs Lisp
Eiffel
Puerto
Julia
JVM
Java
Groovy
Únete a Java
X10
Ceceo
Clojure
Lisp común
Dylan
Logo
Esquema
Lua
Sistema Maude
Oberon-2 - Sistema ETH Oberon
C objetivo
PCASTL
Perl
PHP
Pico
Poplog
POP-11
Potencia Shell
Prólogo
Pitón
REBOL
rojo
Rubí
Smalltalk (orientación a objetos pura, originalmente de Xerox PARC )
F-Script
Pequeño Smalltalk
Uno mismo
Chirrido
IBM VisualAge
VisualWorks
Snobol
Tcl
Wolfram Language
XOTcl
X ++
Xojo
Lenguajes basados en reglas
Los lenguajes basados en reglas crean instancias de reglas cuando se activan mediante condiciones en un conjunto de datos. De todas las activaciones posibles, se selecciona algún conjunto y se ejecutan las sentencias que pertenecen a esas reglas. Los lenguajes basados en reglas incluyen: [ cita requerida ]
awk
CLIPS
Reglas de manejo de restricciones
Babea
Lenguaje de programación de GOAL agent
Cadena
OPS5
Prólogo
ToonTalk - los robots son reglas
Mathematica
XSLT [ cita requerida ]
Wolfram Language
Lenguajes de secuencias de comandos
El " lenguaje de secuencias de comandos " tiene dos significados aparentemente diferentes, pero de hecho similares. En un sentido tradicional, los lenguajes de scripting están diseñados para automatizar tareas de uso frecuente que generalmente implican llamar o pasar comandos a programas externos. Muchos programas de aplicación complejos proporcionan lenguajes integrados que permiten a los usuarios automatizar tareas. Los que son interpretativos a menudo se denominan lenguajes de secuencias de comandos.
Recientemente, muchas aplicaciones han incorporado lenguajes de secuencias de comandos tradicionales, como Perl o Visual Basic , pero todavía hay bastantes lenguajes de secuencias de comandos nativos en uso. Muchos lenguajes de secuencias de comandos se compilan en código de bytes y luego este código de bytes (generalmente) independiente de la plataforma se ejecuta a través de una máquina virtual (en comparación con la máquina virtual de Java ).
AppleScript
AutoHotKey
AutoIt
AWK
antes de Cristo
BeanShell
Intento
Ch (intérprete C / C ++ incrustable)
CLI
C # (compilado en bytecode y ejecutando JIT dentro de VM)
CLIST
Fusión fría
ECMAScript
ActionScript
ECMAScript para XML
JavaScript (primero llamado Mocha, luego LiveScript)
JScript
Fuente
Emacs Lisp
CMS EXEC
EJEC. 2
F-Script
Lenguaje de Game Maker (GML)
ICI
Io
JASS
Julia (aún, compilada sobre la marcha en código de máquina )
JVM
Groovy
Únete a Java
Ksh
Lazo
Lua
MAXScript
MEL
Objeto REXX (OREXX, OOREXX)
Mirador
Pascal Script
Perl
PHP (destinado a servidores web)
Potencia Shell
Pitón
R
REBOL
rojo
Rexx
Revolución
Rubí
Sh
Charla
Jerga
sed
Té
Tcl
TorqueScript
VBScript
WebDNA , dedicado a sitios web basados en bases de datos
Windows PowerShell ( CLI basada en .NET )
Winbatch
Muchos lenguajes de comandos de shell, como el shell de Unix o el lenguaje de comandos DIGITAL (DCL) en VMS, tienen potentes capacidades de scripting.
Idiomas basados en pilas
Categoría principal: lenguajes de programación orientados a pilas
Los lenguajes basados en pilas son un tipo de lenguaje estructurado de datos que se basan en la estructura de datos de la pila .
Beatnik
Canonware Onyx [6]
Factor
Adelante
Joy (todas las funciones funcionan en pilas de parámetros en lugar de parámetros con nombre)
Piet
Poplog a través de su lenguaje de implementación POP-11
Posdata
RPL
Jerga
Idiomas sincrónicos
Categoría principal: lenguajes de programación síncronos
Los lenguajes de programación síncronos están optimizados para programar sistemas reactivos, sistemas que a menudo se interrumpen y deben responder rápidamente. Muchos de estos sistemas también se denominan sistemas en tiempo real y se utilizan a menudo en sistemas integrados .
Ejemplos:
Argos
Averest
Esterel
Lustre
Señal
Idiomas de sombreado
Ver también: Categoría: Idiomas de sombreado
Un lenguaje de sombreado es un lenguaje de programación de gráficos adaptado a la programación de efectos de sombreado. Tales formas de lenguaje generalmente consisten en tipos de datos especiales, como "color" y "normal". Debido a la variedad de mercados objetivo para gráficos por computadora en 3D.
Renderizado en tiempo real
Proporcionan una mayor abstracción de hardware y un modelo de programación más flexible que los paradigmas anteriores que codificaban ecuaciones de transformación y sombreado. Esto le da al programador un mayor control sobre el proceso de renderizado y entrega contenido más rico con menos gastos generales.
Lenguaje ensamblador de Adobe Graphics (AGAL) [7]
Lenguaje ensamblador ARB (ensamblado ARB)
Lenguaje de sombreado OpenGL (GLSL o glslang)
Lenguaje de sombreado de alto nivel (HLSL) o lenguaje ensamblador de sombreado de DirectX
Lenguaje de sombreado de PlayStation (PSSL)
Lenguaje de sombreado metálico (MSL)
Cg
Shining Rock Shading Language (SRSL) [8]
Chispa [9]
Lenguaje de sombreado nitroso [10]
Lenguaje de sombreado Godot [11]
Renderizado sin conexión
Los lenguajes de sombreado utilizados en el renderizado sin conexión producen la máxima calidad de imagen. Procesar estos sombreadores requiere mucho tiempo. La potencia computacional requerida puede ser costosa debido a su capacidad para producir resultados fotorrealistas.
Lenguaje de sombreado RenderMan (RSL)
Lenguaje de sombreado Houdini VEX (VEX)
Lenguaje de sombreado de Gelato
Lenguaje de sombreado abierto (OSL)
Lenguajes de manejo de sintaxis
Estos lenguajes ayudan a generar analizadores léxicos y analizadores sintácticos para gramáticas libres de contexto .
ANTLR
Coco / R (EBNF con semántica)
GNU bison (versión de Yacc de la FSF)
GNU Flex (versión FSF de Lex)
glex / gyacc (compilador-compilador de GoboSoft para Eiffel)
lex (análisis léxico, de Bell Labs)
M4
Analizar la gramática de expresiones (PEG)
Prólogo
Emacs Lisp
Ceceo
SableCC
Esquema
yacc (otro compilador-compilador más, de Bell Labs)
JavaCC
Idiomas del sistema
Los lenguajes de programación del sistema son para tareas de bajo nivel como administración de memoria o administración de tareas. Un lenguaje de programación del sistema generalmente se refiere a un lenguaje de programación utilizado para la programación del sistema; Dichos lenguajes están diseñados para escribir software de sistemas, que generalmente requiere diferentes enfoques de desarrollo en comparación con el software de aplicación.
El software del sistema es un software de computadora diseñado para operar y controlar el hardware de la computadora y para proporcionar una plataforma para ejecutar software de aplicación. El software del sistema incluye categorías de software como sistemas operativos, software de utilidad, controladores de dispositivos, compiladores y enlazadores. Los ejemplos de lenguajes del sistema incluyen:
Idioma
Autor
Apareció por primera vez
Influenciado por
Usado para
ESPOL
Corporación Burroughs
1961
ALGOL 60
MCP
PL / I
IBM , COMPARTE
1964
ALGOL, FORTRAN, algo de COBOL
Multics
PL360
Niklaus Wirth
1968
ALGOL 60
ALGOL W
C
Dennis Ritchie
1969
BCPL
La mayoría de los núcleos de los sistemas operativos , incluidos Windows NT y la mayoría de los sistemas similares a Unix
PL / S
IBM
196x
PL / I
OS / 360
FELICIDAD
Universidad de Carnegie mellon
1970
ALGOL-PL / I [12]
VMS (porciones)
PL / 8
IBM
197 veces
PL / I
AIX
PL / MP y PL / MI
IBM
197 veces
PL / I
CPF , OS / 400
PL-6
Honeywell, Inc.
197 veces
PL / I
CP-6
SYMPL
Centros para el Control y la Prevención de Enfermedades
197 veces
JOVIAL
Subsistemas NOS , la mayoría de compiladores, editor FSE
C ++
Bjarne Stroustrup
1979
C , Simula
Ver Aplicaciones C ++ [13]
Ada
Jean Ichbiah , S. Tucker Taft
1983
ALGOL 68 , Pascal , C ++ , Java , Eiffel
Sistemas integrados, kernels de SO, compiladores, juegos, simulaciones, CubeSat , control de tráfico aéreo y aviónica
D
Marte digital
2001
C ++
Varios dominios [14]
Nim
Andreas Rumpf
2008
Ada , Modula-3 , Lisp , C ++ , Object Pascal , Python , Oberon
Kernels de SO, compiladores, juegos
Oxido
Investigación de Mozilla [15]
2010
C ++ , Haskell , Erlang , Ruby
Motor de diseño servo , SO Redox
Rápido
Apple Inc.
2014
C , objetivo-C , óxido
macOS , desarrollo de aplicaciones para iOS [c]
Zig
Andrew Kelley
2016
C , C ++ , LLVM IR , Go , Rust , JavaScript
Como reemplazo de C
Lenguajes de transformación
Artículo principal: Lenguaje de transformación
Lenguajes visuales
Categoría principal: lenguajes de programación visual
Los lenguajes de programación visual permiten a los usuarios especificar programas de forma bidimensional (o más), en lugar de cadenas de texto unidimensionales, mediante diseños gráficos de varios tipos. Algunos lenguajes de programación de flujo de datos también son lenguajes visuales.
Analytica
Blockly
Clickteam Fusion
DRAKON
Fabrik
G (usado en LabVIEW )
Saltamontes
Lava
Limnor
Max
NXT-G
picto
Prograph
Datos puros
Compositor de cuarzo
Scratch (escrito y basado en Squeak , una versión de Smalltalk )
¡Quebrar!
Simulink
Hojas de cálculo
Stateflow
Trasfondo
ToonTalk
VEE
VisSim
Vvvv
XOD
EICASLAB
Idiomas de Wirth
El informático Niklaus Wirth diseñó e implementó varios lenguajes influyentes.
ALGOL W
Euler
Modula
Modula-2 , Modula-3 , variantes
Variante Obliq Modula 3
Oberon (Oberon, Oberon-07, Oberon-2)
Componente Pascal
Oberon-2
Pascal
Object Pascal (nombre general para Delphi , Free Pascal , Oxygene , otros)
Lenguajes basados en XML
Estos son lenguajes basados o que operan en XML .
Hormiga
Cω
ECMAScript para XML
MXML
LZX
XAML
XPath
XQuery
XProc
Transformaciones extensibles del lenguaje de hojas de estilo ( XSLT )
Ver también
Paradigma de programación
IEC 61131-3 : un estándar para lenguajes de controladores lógicos programables (PLC)
Lenguaje de programación educativo
Lenguaje de programación esotérico
Notas
^ Los objetos de SQL son colecciones de registros de bases de datos , llamadas tablas. Un lenguaje de programación completopuede especificar algoritmos , independientemente del tiempo de ejecución . Por tanto, se puede considerar que un algoritmo genera resultados utilizables. Por el contrario, SQL solo puede seleccionar registros que están limitados a la colección actual, los datos disponibles en el sistema, en lugar de producir una declaración de la exactitud del resultado.
^ a b No se enumeran los submodelos, solo los modelos base
^ Swift utiliza el recuento automático de referencias .
Referencias
^ Documentación »La biblioteca estándar de Python» Ejecución concurrente
^ "Comprensión de la propiedad: el lenguaje de programación Rust" . doc.rust-lang.org .
^ "Punteros inteligentes - el lenguaje de programación Rust" . doc.rust-lang.org .
^ Jon Bentley (AT&T) Agosto de 1986 MCCA 29 (8) "Pequeños lenguajes", págs. 711-721 de su columna Programming Pearls
^ "Macros de procedimiento para generar código a partir de atributos" . doc.rust-lang.org .
^ "Canonware Onyx" . Canonware.com . Archivado desde el original el 13 de marzo de 2017 . Consultado el 7 de julio de 2018 .
^ Scabia, Marco. "Qué es AGAL" . Conexión de desarrollador de Adobe . Adobe . Consultado el 8 de mayo de 2018 .
^ Hodorowicz, Luke. "Idiomas de sombreado" . www.shiningrocksoftware.com . Software Shining Rock . Consultado el 8 de mayo de 2018 .
^ Foley, Tim; Hanrahan, Pat. "Spark: Shaders modulares componibles para hardware de gráficos" . Software de Intel . ACM . Consultado el 8 de mayo de 2018 .
^ "Preguntas frecuentes sobre nitroso" . oxidegames.com . Consultado el 8 de mayo de 2018 .
^ Linietsky, Juan; Manzur, Ariel. "Lenguaje de sombreado - última documentación de Godot Engine" . docs.godotengine.org . Comunidad Godot . Consultado el 8 de mayo de 2018 .
^ Wulf, WA; Russell, DB; Haberman, AN (diciembre de 1971). "BLISS: un lenguaje para la programación de sistemas". Comunicaciones de la ACM . 14 (12): 780–790. CiteSeerX 10.1.1.691.9765 . doi : 10.1145 / 362919.362936 .
^ "Aplicaciones C ++" .
^ [1]
^ "Investigación de Mozilla" . 1 de enero de 2014.
Categorías :
Listas de lenguajes de programación
Lenguajes de programación de matrices
Categorías ocultas:
Artículos con breve descripción
La descripción corta coincide con Wikidata
Todos los artículos con declaraciones sin fuente
Artículos con declaraciones sin fuente de abril de 2017
Artículos con declaraciones sin fuente de enero de 2018
Artículos que se ampliarán a partir de noviembre de 2016
Todos los artículos se ampliarán
Artículos que utilizan cuadros de mensaje pequeños
Artículos que se ampliarán a partir de abril de 2018
Artículos que se ampliarán a partir de septiembre de 2018
Artículos con declaraciones sin fuente de marzo de 2015
Artículos con declaraciones sin fuente de agosto de 2015