Esta es una lista de lenguajes de programación destacados , agrupados según sus atributos más relevantes. Dado que un lenguaje puede tener múltiples atributos, puede aparecer en varios grupos.
Lenguajes de programación orientados a agentes
La programación orientada a agentes permite al desarrollador construir, extender y utilizar agentes de software , que son abstracciones de objetos que pueden enviar mensajes a otros agentes.
lenguajes de matrices
Los lenguajes de programación de matrices (también denominados vectoriales o multidimensionales ) generalizan las operaciones sobre escalares para aplicarlas de forma transparente a vectores , matrices y matrices de dimensiones superiores .
Lenguajes de programación orientados a aspectos
La programación orientada a aspectos permite a los desarrolladores añadir nuevas funciones al código, conocidas como consejos , sin modificar dicho código. En su lugar, utiliza un punto de corte para implementar los consejos en bloques de código.
lenguajes ensamblador
Los lenguajes ensamblador se corresponden directamente con un lenguaje máquina (véase más abajo ), por lo que las instrucciones en código máquina aparecen en un formato comprensible para los humanos, aunque puede que no exista una correspondencia uno a uno entre una instrucción y una sentencia. Los lenguajes ensamblador 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 .
Lenguajes de autoría
Un lenguaje de autoría es un lenguaje de programación diseñado para que lo utilice una persona sin conocimientos técnicos en informática para crear fácilmente tutoriales, sitios web y otros programas informáticos interactivos.
Lenguajes de interfaz de línea de comandos
Los lenguajes de interfaz de línea de comandos (CLI) también se denominan lenguajes de procesamiento por lotes o lenguajes de control de trabajos. Ejemplos:
- 4DOS (shell para PC IBM)
- 4OS2 (shell para PC IBM)
- Archivos por lotes para DOS y Windows
- COMMAND.COM es un lenguaje de comandos para DOS y versiones anteriores de Windows NT.
- Lenguaje de comandos cmd.exe para Windows NT
- sh
- CLIST (Lista de comandos de MVS)
- Ejecutivo de CMS
- csh
- Lenguaje de comandos digital (CLI) para OpenVMS
- EJECUTIVO 2
- Esperar
- pez
- Nushell
- Windows PowerShell
- rc
- Rexx
- TACL (lenguaje de programación)
Lenguajes compilados
Se trata de lenguajes que normalmente son procesados por compiladores , aunque teóricamente cualquier lenguaje puede ser compilado o interpretado.
- ArkTS
- ActionScript
- Ada
- ALGOL 58
- ALGOL 60
- ALGOL 68
- Bailarina ( tiempo de ejecución de código de bytes )
- BASIC (incluida la primera versión de Dartmouth BASIC)
- BCPL
- do
- C++
- C# (en el entorno de ejecución de CIL )
- Ceylon (en bytecode de JVM )
- ENFRIAR
- Clipper 5.3
- CLEO para ordenadores Leo
- Clojure (en bytecode de JVM )
- COBOL
- Cobra
- Lisp común
- Cristal
- Rizo
- D
- DASL→Java, JavaScript (JS), JSP, Flex.war
- Delphi ( sistema de desarrollo Object Pascal de Borland )
- DIBOL (COBOL digital)
- Dylan
- Eiffel
- Olmo
- Emacs Lisp
- Esmeralda
- Erlang
- Factor
- Fortran
- GAUSS
- Ir
- Gosu (en bytecode de JVM )
- Groovy (en bytecode de JVM )
- Haskell
- Puerto
- Santo Cristo
- Informar (normalmente archivos de historias para Glulx o código Z )
- Java (en bytecode de JVM , también admite GraalVM Native Image para binarios nativos)
- JOVIAL
- Julia (conversión dinámica a código máquina)
- Kotlin (en bytecode de JVM , también admite Kotlin/Native que utiliza LLVM para producir binarios)
- LabVIEW
- Mercurio
- Colina baja
- Nemerle (en código de bytes de lenguaje intermedio)
- Nim
- Objetivo-C
- PAG
- Pascal (la mayoría de las implementaciones)
- PL/I
- Más
- Poni
- Python (a código de bytes de máquina virtual intermedio )
- RPG (Generador de programas de informes)
- Rojo
- Óxido
- Scala (en bytecode de JVM )
- Esquema (por ejemplo, Gambito)
- SecuenciaL
- Simula
- Código de bytes de máquina virtual independiente de la plataforma Smalltalk
- Rápido
- ML
- ML estándar (SML)
- OCaml
- F# (en CIL , genera tiempo de ejecución)
- Turing
- V (Vlang)
- Vala
- Visual Basic ( entorno de ejecución CIL JIT)
- Visual FoxPro
- Prólogo visual
- Xojo
- Zig
lenguajes de programación concatenativos
Un lenguaje de programación concatenativo es un lenguaje de programación de computadora sin puntos en el que todas las expresiones denotan funciones , y la yuxtaposición de expresiones denota composición de funciones .
Lenguajes concurrentes
Los lenguajes de paso de mensajes proporcionan construcciones de lenguaje para la concurrencia . El paradigma predominante para la concurrencia en lenguajes convencionales como Java es la concurrencia de memoria compartida . Los lenguajes concurrentes que utilizan el paso de mensajes generalmente se han inspirado en cálculos de procesos como los procesos secuenciales comunicantes (CSP) o el cálculo π .
- Ada
- Alef
- Ateji PX
- Bailarina
- C++ (desde C++11 )
- Arrojar
- Cilk
- Cω (a través de comunicación asíncrona)
- Clojure
- Capilla
- Fortran de co-array
- Pascal concurrente
- Curry
- mi
- Eiffel (a través del mecanismo SCOOP , Computación Orientada a Objetos Concurrente Simple)
- Elixir
- Esmeralda (a través de hilos y monitores)
- Erlang (mediante paso de mensajes asíncrono sin compartir nada)
- Esquema Gambit (utilizando la biblioteca Termite)
- Destello
- Ir
- Haskell (mediante programación concurrente, distribuida y paralela en múltiples máquinas)
- Java
- Julia
- Joule (mediante paso de mensajes)
- LabVIEW
- Limbo
- MultiLisp (mediante capacidades de paralelismo extendidas)
- OCaml
- Occam
- Orco
- Oz (a través de concurrencia de estado compartido y paso de mensajes, y futuros, y Oz multiplataforma del Sistema de Programación Mozart)
- PAG
- Poni
- picto
- Python (mediante paralelismo basado en hilos y paralelismo basado en procesos [ 4 ] )
- Raku [ 5 ]
- Óxido
- Scala
- SecuenciaL
- SR
- V (Vlang)
- Paralelo Unificado C
- XProc
Lenguajes de programación con restricciones
Un lenguaje de programación con restricciones es un lenguaje de programación declarativo donde las relaciones entre variables se expresan como restricciones . La ejecución procede intentando encontrar valores para las variables que satisfagan todas las restricciones declaradas.
Idiomas contractuales
El diseño por contrato (o programación por contrato) es la programación que utiliza precondiciones , postcondiciones e invariantes definidos .
- Ada (desde Ada 2012)
- Hola
- Clojure
- Cobra
- C++ (desde C++26 )
- D [ 7 ]
- Dafny
- Eiffel
- Fortaleza
- Kotlin
- Mercurio
- Oxygene (anteriormente Chrome y Delphi Prism [ 8 ] )
- Extorsión (incluidos los contratos de orden superior, y haciendo hincapié en que las violaciones contractuales deben culpar a la parte culpable y deben hacerlo con una explicación precisa [ 9 ] )
- Sather
- Scala [ 10 ] [ 11 ]
- SPARK (mediante análisis estático de programas Ada )
- Vala
- Método de Desarrollo de Viena (VDM)
Lenguajes de llaves
Un lenguaje de llaves tiene una sintaxis que define un bloque como las instrucciones entre llaves, también llamadas corchetes . Esta sintaxis se originó con BCPL (1966) y fue popularizada por C. Muchos lenguajes de llaves descienden de C o están fuertemente influenciados por él . Ejemplos: {}
- ABCL/c+
- Alef
- AWK
- ArkTS
- B
- antes de Cristo
- BCPL
- Bailarina
- do
- C++
- DO#
- Ceilán
- Capilla
- Arrojar
- Cilk
- Ciclón
- D
- Dardo
- DASL – basado en Java
- mi
- ECMAScript
- GLSL
- Ir
- HLSL
- Java
- Limbo
- LPC
- MEL
- Nemerle (llaves opcionales) [ 12 ]
- Objetivo-C
- PCASTL
- Perl
- PHP
- Pico
- Lucio
- PowerShell
- R
- Raku
- Óxido
- Jerga
- Scala (llaves opcionales)
- sed
- Solidez [ 13 ]
- Supercolisionador
- Rápido
- Tcl
- UnrealScript
- V (Vlang)
- Yorick
- ¡SÍ!
- Zig
Lenguajes 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 utilizan a menudo para reaccionar a eventos discretos o para procesar flujos de datos. Los lenguajes de flujo de datos incluyen:
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, las cuales asignan un conjunto de elementos a otros conjuntos. Los lenguajes orientados a datos incluyen:
Lenguajes de tablas de decisión
Las tablas de decisión pueden utilizarse como ayuda para aclarar la lógica antes de escribir un programa en cualquier lenguaje, 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 decisión, entre ellos:
Lenguajes declarativos
Los lenguajes declarativos expresan la lógica de un cálculo sin describir su flujo de control en detalle. La programación declarativa se contrapone a la programación imperativa mediante lenguajes de programación imperativos, donde el flujo de control se especifica mediante órdenes secuenciales (imperativos). Los lenguajes de programación (puramente) funcionales y lógicos también son declarativos y constituyen las principales subcategorías de la categoría declarativa. Esta sección incluye ejemplos adicionales que no pertenecen a dichas subcategorías.
- Analítica
- Ant (combina programación declarativa y programación imperativa )
- Curry
- Cifrar
- Registro de datos
- Lenguaje de especificación de aplicaciones distribuidas (DASL) (combina programación declarativa y programación imperativa )
- ECL
- Duendecillo
- Informar (combinar la programación declarativa y la programación imperativa )
- Lustre
- Mercurio
- Metafont
- MetaPost
- Modelica
- Nada
- Prólogo
- QML
- Onz
- RDQL
- SecuenciaL
- SPARQL
- SQL (solo DQL, no DDL, DCL ni DML)
- Soufflé
- VHDL (admite programación declarativa , programación imperativa y programación funcional )
- Wolfram Mathematica ( lenguaje Wolfram )
- WOQL ( TerminusDB )
- xBase
- Transformaciones XSL
Lenguajes integrables
En el código fuente
Los lenguajes de código fuente incrustables permiten insertar pequeños fragmentos de código ejecutable dentro de un texto de formato 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 proporcionar dinamismo a 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 prácticamente cualquier lenguaje puede integrarse en un servidor. El objetivo de tener fragmentos de código del lado del servidor integrados en una página web es generar marcado adicional de forma dinámica; el código en sí desaparece cuando se sirve la página, siendo reemplazado por su resultado.
Lado del servidor
- PHP
- VBScript
- Tcl : lenguaje del lado del servidor en NaviServer y un componente esencial en los sistemas de la industria electrónica.
Los ejemplos anteriores están especialmente dedicados a este propósito. Se pueden adaptar muchos 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 para Windows)
En código objeto
Se puede integrar una amplia variedad de lenguajes dinámicos o de scripting en código ejecutable compilado. Básicamente, el código objeto del intérprete del lenguaje debe vincularse al ejecutable. A continuación, se pueden pasar fragmentos de código fuente del lenguaje integrado a una función de evaluación como cadenas de texto. Los lenguajes de control de aplicaciones pueden implementarse de esta forma si el usuario introduce el código fuente. Se prefieren los lenguajes con intérpretes pequeños.
Lenguajes de programación educativa
Lenguajes desarrollados principalmente con el propósito de enseñar y aprender programación.
Lenguas esotéricas
Un lenguaje de programación esotérico es un lenguaje de programación diseñado para poner a prueba los límites del diseño de lenguajes de programación informática, como prueba de concepto o como una broma.
Lenguajes de extensión
Los lenguajes de programación de extensión son lenguajes integrados en otro programa y utilizados para aprovechar sus características en scripts de extensión.
- AutoLISP (específico para AutoCAD )
- Cáscara de judía
- CALIFORNIA
- C/AL (LADO C)
- Engaño
- Emacs Lisp
- JavaScript y algunos dialectos, por ejemplo, JScript
- Lua (integrado 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 potentes abstracciones para el procesamiento de grandes volúmenes de datos)
- Perl
- Lucio
- PowerShell
- Python (integrado en Maya, Blender y otros programas de animación 3D)
- Rexx
- Rubí (Google SketchUp)
- Jerga
- SQL
- Ardilla
- Tcl
- Script de Vim (vim)
- Visual Basic para Aplicaciones (VBA)
Lenguas de cuarta generación
Los lenguajes de programación de cuarta generación son lenguajes de programación de alto nivel diseñados en torno a 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 el ciclo de vida de una aplicación) para su uso con CA- DATACOM/DB
- Generador de informes Easytrieve (ahora CA-Easytrieve Plus)
- ENFOCAR
- IBM Informix-4GL
- LINC 4GL
- LiveCode (No se basa en una base de datos; sin embargo, el objetivo es trabajar con un nivel de abstracción superior al de los lenguajes de tercera generación).
- MAPPER ( Unisys/Sperry ) (ahora parte de BIS)
- MARK-IV ( Sterling/Informática ) ahora VISION:BUILDER de CA
- NATURAL
- Progreso 4GL
- Onda fotovoltaica
- RECUPERAR
- SAS
- SQL
- Ubercode (VHLL, o lenguaje de muy alto nivel)
- Uniface
- Visual DataFlex
- Visual FoxPro
- xBase
Lenguajes funcionales
Los lenguajes de programación funcional definen los programas y las subrutinas como funciones matemáticas y los tratan como de primera clase. Muchos de los llamados lenguajes funcionales son "impuros", ya que contienen características imperativas. Muchos lenguajes funcionales están vinculados a herramientas de cálculo matemático. Los lenguajes funcionales incluyen:
Puro
Impuro
- APL
- ATS
- CALIFORNIA
- C++ (desde C++11 )
- DO#
- VB.NET
- Ceilán
- Rizo
- D
- Dardo
- ECMAScript
- Erlang
- Fexl
- Flix
- G (utilizado en LabVIEW)
- Genial
- Brincar
- Java (desde la versión 8)
- Julia
- Kotlin
- Ceceo
- ML
- ML estándar (SML)
- OCaml
- F#
- Nemerle
- Nim
- Ópalo
- OPS5
- Perl
- PHP
- PL/pgSQL
- Pitón
- Q (lenguaje de programación ecuacional)
- R
- Rebol
- Rojo
- Rubí
- REFAL
- Óxido
- Scala
- Rápido
- hojas de cálculo
- V (Vlang)
- Tcl
- Wolfram Mathematica ( lenguaje Wolfram )
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, de los circuitos lógicos digitales. Las dos variantes de HDL más utilizadas y con mayor soporte en la industria son Verilog y VHDL . Los lenguajes de descripción de hardware incluyen:
Lenguajes de descripción de hardware (HDL) para el diseño de circuitos analógicos
- Verilog-AMS (Verilog para señales analógicas y mixtas)
- VHDL-AMS (VHDL con extensión analógica/de señal mixta)
Lenguajes de descripción de hardware (HDL) para el diseño de circuitos digitales
Lenguas imperativas
Los lenguajes de programación imperativos pueden ser multiparadigmáticos y aparecer en otras clasificaciones. Aquí hay una lista de lenguajes de programación que siguen el paradigma imperativo :
- Ada
- ALGOL 58
- ALGOL 60 (diseño de lenguaje muy influyente)
- ALGOL 68
- lenguajes ensamblador
- BÁSICO
- do
- C++
- DO#
- Ceilán
- ENFRIAR
- COBOL
- D
- Dardo
- ECMAScript
- FORTRAN
- GAUSS
- Ir
- Genial
- Icono
- Java
- Julia
- Lua
- MATLAB
- Lenguajes de máquina
- Módulo-2 , Módulo-3
- PAPERAS
- Nim
- OCaml
- Oberón
- Objeto Pascal
- Open Object Rexx (ooRexx)
- Lenguaje de Programación Abierto (OPL)
- Lenguaje empresarial avanzado de OpenEdge (ABL)
- Pascal
- Perl
- PHP
- PL/I
- PL/S
- PowerShell
- PROSA
- Pitón
- Raku
- Rexx
- Rubí
- Óxido
- SETL
- Bar clandestino
- Rápido
- Tcl
- V (Vlang)
- Wolfram Mathematica ( lenguaje Wolfram )
Idiomas del modo interactivo
Conocidos como REPL (por sus siglas en inglés), los lenguajes en modo interactivo actúan como una especie de intérprete de comandos: las expresiones o instrucciones se pueden introducir una a una, y el resultado de su evaluación se ve inmediatamente.
- APL
- BÁSICO (algunos dialectos)
- Clojure
- Lisp común
- Dart (con las herramientas de desarrollo de Observatory o Dartium)
- ECMAScript
- Erlang
- Elixir (con iex)
- F#
- Volante
- GAUSS
- Genial
- Engaño
- Haskell (con el intérprete GHCi o Hugs)
- IDL
- J
- Java (desde la versión 9)
- Julia
- Lua
- MUMPS (un lenguaje de propósito general estándar ANSI)
- Arce
- MATLAB
- ML
- Nim (con INim)
- OCaml
- Perl
- PHP
- Lucio
- Posdata
- PowerShell ( CLI basada en .NET )
- Prólogo
- Pitón
- PROSA
- R
- Raku
- Rebol
- Rojo
- Rexx
- Ruby (con IRB )
- Scala
- Esquema
- Smalltalk (en cualquier parte de un entorno Smalltalk)
- S-Lang (con la concha de S-Lang, slsh)
- Bar clandestino
- Rápido
- Tcl (con el intérprete de comandos Tcl, tclsh)
- shell de Unix
- Visual FoxPro
- Wolfram Mathematica ( lenguaje Wolfram )
Lenguas interpretadas
Los lenguajes interpretados son lenguajes de programación en los que los programas pueden ejecutarse a partir del código fuente mediante un intérprete. En teoría, cualquier lenguaje puede compilarse o interpretarse, por lo que el término lenguaje interpretado generalmente se refiere a lenguajes que suelen interpretarse en lugar de compilarse.
- Hormiga
- APL
- Lenguaje de scripting de AutoHotkey
- Lenguaje de scripting AutoIt
- BÁSICO (algunos dialectos)
- Lenguaje de programación para negocios (PL/B, anteriormente DATABUS; versiones posteriores añadieron compilación opcional).
- Eiffel (a través de la tecnología de fusión de hielo en EiffelStudio )
- Emacs Lisp
- FOCAL
- Lenguaje GameMaker
- Genial
- J
- jq
- Java mediante código de bytes de la JVM
- Julia (compilada sobre la marcha a código máquina , por defecto; también disponible la interpretación).
- JavaScript
- Lisp (versiones antiguas, anteriores a 1962, y algunas experimentales; los sistemas Lisp de producción son compiladores, pero muchos de ellos todavía proporcionan un intérprete si es necesario).
- LPC
- Lua
- MUMPS (un lenguaje de propósito general estándar ANSI)
- Arce
- MATLAB
- OCaml
- Pascal (primeras implementaciones)
- PCASTL
- Perl
- PHP
- Posdata
- PowerShell
- PROSA
- Pitón
- Rexx
- R
- Raku
- Rebol
- Rojo
- Rubí
- Jerga
- Semilla7
- Bar clandestino
- ML estándar (SML)
- Girar
- Tcl
- Té
- TorqueScript
- VBScript
- Windows PowerShell – Interfaz de línea de comandos basada en .NET
- Algunos lenguajes de scripting – a continuación
- Wolfram Mathematica ( lenguaje Wolfram )
Lenguajes iterativos
Los lenguajes iterativos se construyen en torno a generadores o los ofrecen .
Idiomas según el tipo de gestión de memoria.
Idiomas recogidos de basura
La recolección de basura (GC, por sus siglas en inglés) 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 utiliza.
- APL
- C , a través de recolectores de basura no oficiales como Boehm
- C++ (compatible con la biblioteca estándar desde C++11 hasta C++23 ) [ 15 ] [ 16 ]
- DO#
- Limpio
- Cristal
- Dardo
- ECMAScript
- Esmeralda
- Erlang
- Ir
- Genial
- Haskell
- Java
- Julia
- Kotlin
- LabVIEW
- Lisp (creador)
- Lua
- ML
- ML estándar (SML)
- OCaml
- Módulo-3
- Perl
- PHP
- PowerShell
- Pitón
- Rubí
- Charla informal
- Bar clandestino
Lenguajes con gestión manual de la memoria
- ALGOL 68
- Ensamblaje (varios)
- DICHA
- do
- C++
- C# , en
unsafecontextos - Componente Pascal
- Adelante
- Fortran
- FreeBASIC
- Java , a través de la clase interna sun.misc.Unsafe
- Módulo-2
- Oberón
- Pascal
- PL/I
- Rust , en
unsafecontextos - Zig
Idiomas con gestión de memoria manual opcional
- Ada [ a ]
- Blitz BÁSICO [ 18 ] [ 19 ] [ 20 ]
- C , a través de recolectores de basura no oficiales como Boehm
- C++ (desde C++11 hasta C++23 con soporte opcional para recolección de basura) [ 15 ] [ 21 ]
- COBOL [ 22 ] [ 23 ] [ 24 ]
- D [ 25 ]
- Nim [ 26 ]
- Objetivo-C [ 27 ]
- Objective-C++
- PostScript [ b ]
- V [ 29 ]
- Vala [ 30 ]
Algunos lenguajes de programación que no tienen la capacidad inherente de administrar manualmente la memoria, como Cython , [ 31 ] Swift , [ c ] y Scala [ 32 ] (solo Scala Native), pueden importar o llamar funciones como mallocy freedesde C a través de una interfaz de función externa .
Lenguajes con gestión de memoria determinista
Lenguajes con conteo automático de referencias (ARC)
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 lista .
Lenguas pequeñas
Los lenguajes pequeños [ 35 ] sirven a un dominio de problemas especializado.
- awk – se utiliza para la manipulación de archivos de texto.
- 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 [ d ] – muchos sistemas de gestión de bases de datos extienden SQL con construcciones adicionales como lenguaje de procedimientos almacenados
- XPL : un lenguaje diseñado para, aunque no limitado a, la escritura de compiladores.
Lenguajes basados en la 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.
Entre los lenguajes de programación más destacados que siguen este paradigma se incluyen:
- ALF
- Alma-0
- Curry
- Registro de datos
- Volante
- Flix (un lenguaje de programación funcional con restricciones Datalog de primera clase)
- Jano
- λProlog (un lenguaje de programación lógica que incluye tipado polimórfico, programación modular y programación de orden superior)
- Oz y el sistema de programación Mozart multiplataforma Oz
- Prolog (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 de Prolog orientada a objetos)
- ROOP
- Soufflé
Lenguajes de máquina
Los lenguajes de máquina son ejecutables directamente por la CPU de una computadora. Suelen formularse como patrones de bits, representados normalmente 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 (por ejemplo, los pines del encapsulado de la CPU para microprocesadores) y la configuración lógica de 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 incluían un modo de compatibilidad con PDP-11). Estos lenguajes son (esencialmente) siempre definidos por el desarrollador de la CPU, no por terceros. [ e ] La versión simbólica, el lenguaje ensamblador del procesador , también es definida por el desarrollador, en la mayoría de los casos. Algunos conjuntos de instrucciones de código máquina de uso común son:
- BRAZO
- Original de 32 bits
- Instrucciones Thumb de 16 bits (subconjunto de registros utilizados)
- 64 bits (cambio importante en la arquitectura)
- Corporación Burroughs
- Manual de instrucciones Burroughs B5000
- Juego de instrucciones Burroughs B6x00-7x00
- DIC :
- Hewlett-Packard
- IBM [ f ]
- Intel 8008 , 8080 y 8085
- Intel x86 :
- x86 de 16 bits , utilizado por primera vez en el Intel 8086.
- Intel 8086 y 8088 (este último se utilizó en los primeros ordenadores IBM PC ).
- Intel 80186
- Intel 80286 (el primer procesador x86 con modo protegido , utilizado en el IBM PC AT )
- IA-32 , introducido en el 80386
- x86-64 : La especificación original fue creada por AMD . Existen variantes de los fabricantes, pero son esencialmente las mismas:
- x86 de 16 bits , utilizado por primera vez en el Intel 8086.
- MCST Elbrus 2000
- MIPS
- Tecnología MOS 65xx ( 8 bits )
- 6502 (CPU para NES , VIC-20 , BBC Micro , Apple II y ordenadores Atari de 8 bits )
- 6510 (CPU para Commodore 64 )
- Western Design Center 65816/65802 (CPU para Apple IIGS y (variante) Super Nintendo Entertainment System )
- Motorola 6800 ( 8 bits )
- Procesadores Motorola serie 68000 (CPU utilizados en los primeros ordenadores Macintosh y Sun )
- National Semiconductor NS320xx
- POWER , utilizado por primera vez en el IBM RS/6000.
- PowerPC : se utiliza en Power Macintosh y en muchas consolas de videojuegos , especialmente las de séptima generación .
- Power ISA : una evolución de PowerPC .
- RISC-V
- Sun Microsystems (ahora Oracle ) SPARC
- UNIVAC [ f ]
- Computadoras de 30 bits: 490 , 492, 494, 1230
- computadoras de 36 bits
Lenguajes de macro
Lenguajes de macros de sustitución de texto
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 las macros higiénicas ), posiblemente con sustitución de parámetros. Se utilizan a menudo para preprocesar el código fuente. Los preprocesadores también pueden proporcionar funcionalidades como la inclusión de archivos .
Los lenguajes de macros pueden estar restringidos a actuar sobre regiones de código especialmente etiquetadas (con el prefijo `a` #en el caso del preprocesador de C). Alternativamente, pueden no estarlo, pero en este caso sigue siendo a menudo indeseable (por ejemplo) expandir una macro incrustada en un literal de cadena , por lo que aún requieren un conocimiento básico de sintaxis. En ese caso, a menudo siguen siendo aplicables a más de un lenguaje. Compárese con lenguajes incrustables en el código fuente como PHP , que son completamente funcionales.
- Preprocesador de C
- m4 (originalmente de AT&T, incluido con Unix)
- ML/I (procesador de macros de propósito general)
- TTM (desarrollado en el Instituto Tecnológico de California)
lenguajes de macros de aplicación
Los lenguajes de scripting como Tcl y ECMAScript ( ActionScript , ECMAScript para XML , JavaScript , JScript ) se han integrado en las aplicaciones. A veces se les denomina "lenguajes de macros", aunque en un sentido algo diferente al de las macros de sustitución de texto como m4 .
Lenguajes de metaprogramación
La metaprogramación consiste en escribir programas que escriben o manipulan otros programas, incluso a sí mismos, como si fueran sus datos, o que realizan parte del trabajo que normalmente se haría en tiempo de ejecución , pero durante la compilación . En muchos casos, esto permite a los programadores hacer más en el mismo tiempo que les llevaría escribir todo el código manualmente.
Lenguajes modulares
La programación modular es un paradigma de programación que organiza funciones y símbolos en módulos independientes.
- Ada
- ALGOL
- BlitzMax
- C (mediante extensiones de Clang )
- C++ (a través de módulos de C++ )
- DO#
- Clojure
- COBOL
- Lisp común
- D
- Dardo
- CE
- Erlang
- Elixir
- Olmo
- F
- F#
- Fortran
- Ir
- Haskell
- Ensamblador IBM/360
- Lenguaje de control (CL) de IBM System/38 y AS/400
- IBM RPG
- Java (a través de paquetes y módulos Java )
- JavaScript [ 38 ]
- Julia
- MATLAB
- ML
- Módulo , Módulo-2 , Módulo-3
- Morfo
- NUEVO P
- Oberón , Oberón-2
- Objetivo-C
- OCaml
- Derivadas de Pascal
- Perl
- PHP
- PL/I
- PureBasic
- Pitón
- R
- Rubí [ 39 ]
- Óxido
- Visual Basic (.NET)
- ADN web.
Lenguas multiparadigmáticas
Los lenguajes multiparadigma 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 que los programadores puedan usar la herramienta más adecuada para cada tarea, reconociendo que ningún paradigma resuelve todos los problemas de la manera más sencilla o eficiente.
- 1C: Lenguaje de programación empresarial (genérico, imperativo, orientado a objetos, basado en prototipos, funcional)
- Ada ( concurrente , distribuido , genérico ( metaprogramación con plantillas ), 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)
- Ceylon (genérico, imperativo, orientado a objetos (basado en clases), funcional, declarativo)
- ChucK (imperativo, orientado a objetos, basado en tiempo, concurrente, sobre la marcha)
- Cobra (genérica, imperativa, orientada a objetos (basada en clases), funcional, contractual)
- Common Lisp (funcional, imperativo, orientado a objetos (basado en clases), orientado a aspectos (el usuario puede añadir otros paradigmas, por ejemplo, lógica))
- Curl (funcional, imperativo, orientado a objetos (basado en clases), metaprogramación)
- Curry (concurrente, funcional, lógica)
- D (genérico, imperativo, funcional, orientado a objetos (basado en clases), metaprogramación)
- Dart (genérico, imperativo, funcional, orientado a objetos (basado en clases))
- Delphi Object Pascal (genérico, imperativo, orientado a objetos (basado en clases), metaprogramación)
- Dylan (funcional, orientado a objetos (basado en clases))
- ECMAScript (funcional, imperativo, orientado a objetos (basado en prototipos))
- 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))
- Ir (imperativo, procedimental),
- Groovy (funcional, orientado a objetos (basado en clases), imperativo, procedimental)
- Puerto
- Brincar
- J (funcional, imperativo, orientado a objetos (basado en clases))
- Java (genérico, imperativo, orientado a objetos (basado en clases), funcional)
- Julia (imperativo, despacho múltiple ("orientado a objetos"), funcional, metaprogramación)
- LabVIEW ( visual , flujo de datos , concurrente, modular, funcional, orientado a objetos, scripting)
- 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: ansiosa , perezosa ), lógica, restricción , imperativo, orientado a objetos (basado en clases), concurrente, distribuido) y Oz multiplataforma del sistema de programación Mozart
- 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 interpretado, de propósito general, de alto nivel, multiplataforma y dinámico)
- 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)
- Racket (funcional, imperativo, orientado a objetos (basado en clases) y extensible por el usuario)
- Raku (concurrente, concatenativo, funcional, metaprogramación genérica, imperativo, orientado a objetos por reflexión, pipelines, reactivo y mediante restricciones de bibliotecas, distribuido)
- Rebol (funcional, imperativo, orientado a objetos (basado en prototipos), metaprogramación (dialectal))
- Rojo (funcional, imperativo, orientado a objetos (basado en prototipos), metaprogramación (dialectal))
- 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))
- V (Vlang) (funcional, imperativo, procedimental, estructurado, concurrente)
- Windows PowerShell (funcional, imperativo, canalización, orientado a objetos (basado en clases))
- Wolfram Mathematica ( lenguaje Wolfram )
Análisis numérico
Si bien varios lenguajes de programación de propósito general, como C y Python , también se utilizan para la computación técnica, esta lista se centra en los lenguajes que se utilizan casi exclusivamente para la computación técnica.
Idiomas no basados en el inglés
- Chino Básico (chino)
- Fjölnir (islandés)
- Idioma Symbolique d'Enseignement (francés)
- Rapira (ruso)
- ezhil (tamil)
Lenguajes orientados a objetos basados en clases
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 principal, en los lenguajes orientados a objetos.
Las funciones polimórficas parametrizadas por la clase de algunos de sus argumentos se denominan típicamente métodos . En lenguajes con despacho simple , las clases también suelen incluir definiciones de métodos. En lenguajes con despacho múltiple , los métodos se definen mediante funciones genéricas . Existen excepciones en las que los métodos de despacho simple son funciones genéricas (por ejemplo, el sistema de objetos de Bigloo ).
Envío único
- ActionScript 3.0
- Actor
- Ada 95 y Ada 2005 (lenguaje multipropósito)
- APL
- BETA
- C++
- DO#
- Ceilán
- Dardo
- Oxygene (anteriormente llamado Chrome)
- Arrojar
- Cobra
- Fusión fría
- Rizo
- D
- Lenguaje de especificación de aplicaciones distribuidas (DASL)
- Delphi Object Pascal
- mi
- GNU E
- Eiffel
- Fortran 2003
- Fortaleza
- Gambas
- Lenguaje de creación de juegos
- Puerto
- J
- Java
- LabVIEW
- Lua
- Modula-2 (abstracción de datos, ocultación de información, tipado fuerte, modularidad completa)
- Modula-3 (añadió más características orientadas a objetos a Modula-2)
- Nemerle
- NetRexx
- Oberon-2 (equivalencia completa de orientación a objetos de una manera original, fuertemente tipada y wirthiana)
- Objeto Pascal
- Objeto REXX
- Objective-C (un superconjunto de C que añade un modelo de objetos derivado de Smalltalk y una sintaxis de paso de mensajes)
- OCaml
- Lenguaje empresarial avanzado de OpenEdge (ABL)
- Oz, el sistema de programación de Mozart
- Perl 5
- PHP
- Lucio
- Prografía
- Python (lenguaje interpretado, opcionalmente orientado a objetos)
- Revolución (el programador no elige los objetos)
- Rubí
- Scala
- Bar clandestino
- Simula (primer lenguaje orientado a objetos, desarrollado por Ole-Johan Dahl y Kristen Nygaard )
- Smalltalk (orientación pura a objetos, desarrollado en Xerox PARC )
- GIRAR
- Supercolisionador
- VBScript (lenguaje de scripting de macros de Microsoft Office)
- Visual DataFlex
- Visual FoxPro
- Prólogo visual
- X++
- Xojo
- XOTcl
Lenguajes orientados a objetos basados en prototipos
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 (inicialmente llamado Mocha, luego LiveScript)
- JScript
- Etoys en Squeak
- Yo
- Lua
- MUGIR
- NewtonScript
- Oblicuo
- R
- Rebol
- Rojo
- Self (primer lenguaje basado en prototipos, derivado de Smalltalk )
- TADS
Lenguajes de reglas de fuera de juego
Los lenguajes de reglas de fuera de línea denotan bloques de código por su sangría .
Lenguajes de procedimiento
Los lenguajes de programación procedimentales se basan en el concepto de unidad y ámbito (el rango de visualización de datos) de una instrucción de código ejecutable. Un programa procedimental se compone de una o más unidades o módulos, ya sean codificados por el usuario o proporcionados en una biblioteca de código; cada módulo se compone de uno o más procedimientos, también llamados función, rutina, subrutina o método, según el lenguaje. Algunos ejemplos de lenguajes procedimentales son:
- Ada (lenguaje multipropósito)
- ALGOL 58
- ALGOL 60 (diseño de lenguaje muy influyente)
- Lenguaje similar a ALGOL de máquina PEQUEÑA
- ALGOL 68
- Alma-0
- BASIC (estas carecen de la mayor parte de la modularidad en versiones (especialmente) anteriores a 1990 aproximadamente)
- BCPL
- DICHA
- do
- C++
- C# (similar a Java/C++)
- Ceilán
- ENFRIAR
- ChucK (sintaxis similar a C/Java, con nuevos elementos sintácticos para tiempo y paralelismo)
- COBOL
- Cobra
- Fusión fría
- CPL (Lenguaje de Programación Combinado)
- Rizo
- D
- Lenguaje de especificación de aplicaciones distribuidas (DASL) (combina programación declarativa y programación imperativa )
- ECMAScript
- ActionScript
- ECMAScript para XML
- JavaScript (inicialmente llamado Mocha, luego LiveScript)
- JScript
- Fuente
- Eiffel
- Adelante
- Fortran (mejor modularidad en estándares posteriores)
- GAUSS
- Ir
- Puerto
- HyperTalk
- Java
- JOVIAL
- Julia
- Idioma H
- Lazo
- Modula-2 (basado fundamentalmente en módulos)
- MATLAB
- Colina baja
- MUMPS (la primera versión era 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 (versiones mejoradas, más pequeñas, más rápidas y más seguras de Modula-2)
- OCaml
- Occam
- Mirador
- Pascal (sucesor de ALGOL 60, predecesor de Modula-2)
- Pascal libre (FPC)
- Object Pascal , Delphi
- PCASTL
- Perl
- Lucio
- SOCIEDAD ANÓNIMA
- PL/I (lenguaje de programación de propósito general, originalmente para mainframes de IBM)
- Más
- PowerShell
- PROSA
- Pitón
- R
- Raku
- Rapira
- Juego de rol
- Óxido
- Jerga
- VBScript
- Visual Basic
- Visual FoxPro
- Wolfram Mathematica ( lenguaje Wolfram )
- Microsoft Dynamics AX (X++)
Lenguajes de consulta
Lenguajes reflexivos
Los lenguajes de programación reflexivos permiten que los programas examinen y posiblemente modifiquen su estructura de alto nivel en tiempo de ejecución o de compilación. Esto es más común en lenguajes de programación de máquinas virtuales de alto nivel como Smalltalk , y menos común en lenguajes de programación de bajo nivel como C. Lenguajes y plataformas que admiten reflexión:
- Befunge
- C++ (desde C++26 )
- Ceilán
- Encanto
- Arrojar
- CLI
- Cobra
- Componente Pascal BlackBox Component Builder
- Rizo
- Cifrar
- Delphi Object Pascal
- ECMAScript
- Emacs Lisp
- Eiffel
- Puerto
- Julia
- JVM
- Ceceo
- Lua
- Sistema Maude
- Oberon-2 – Sistema Oberon de la ETH
- Objetivo-C
- PCASTL
- Perl
- PHP
- Pico
- Registro pop
- PowerShell
- Prólogo
- Pitón
- Raku [ 41 ]
- Rebol
- Rojo
- Rubí
- Rust (experimental [ 42 ] [ 43 ] )
- Smalltalk (orientación pura a objetos, originario de Xerox PARC )
- SNOBOL
- Tcl
- Wolfram Mathematica ( lenguaje Wolfram )
- XOTcl
- X++
- Xojo
Lenguajes basados en reglas
Los lenguajes basados en reglas instancian reglas cuando se activan mediante condiciones en un conjunto de datos. De todas las activaciones posibles, se selecciona un conjunto y se ejecutan las instrucciones que pertenecen a esas reglas. Los lenguajes basados en reglas incluyen:
Lenguajes de scripting
- AngelScript
- AppleScript
- AutoHotKey
- AutoIt
- AWK
- antes de Cristo
- Cáscara de judía
- C (a través del compilador Tiny C )
- Ch (Intérprete C/C++ integrable)
- CLI
- CLISTO
- Fusión fría
- ECMAScript
- ActionScript
- ECMAScript para XML
- JavaScript (inicialmente llamado Mocha, luego LiveScript)
- JScript
- Fuente
- Emacs Lisp
- Ejecutivo de CMS
- EJECUTIVO 2
- Lenguaje de creación de juegos (GML)
- GDScript
- Yo
- JASS
- Julia (compilada sobre la marcha a código máquina , por defecto; también disponible la interpretación).
- JVM
- Genial
- Java (a través de JBang) [ 44 ]
- Únete a Java
- Lazo
- Lua
- MAXScript
- MEL
- Mirador
- Script Pascal
- Perl
- PHP (diseñado para servidores web)
- Pitón
- R
- Raku
- Rebol
- Rojo
- Rexx
- REXX de objetos (OREXX, OOREXX)
- Revolución
- Rubí
- RUNCOM (lenguaje de scripting para ejecutar programas CTSS )
- Jerga
- sed
- Charla informal
- Ardilla
- Té
- Tcl
- TorqueScript
- VBScript
- Muchos lenguajes de comandos de shell tienen potentes capacidades de scripting:
- sh y compatibles
- Lenguaje de comandos digitales (DCL) en VMS
- PowerShell ( CLI basada en .NET )
Lenguajes basados en pilas
Los lenguajes basados en pilas son un tipo de lenguaje estructurado de datos que se basan en la estructura de datos de pila .
Lenguas síncronas
Los lenguajes de programación síncronos están optimizados para programar sistemas reactivos, sistemas que se interrumpen con frecuencia y deben responder rápidamente. Muchos de estos sistemas también se denominan sistemas en tiempo real y se utilizan a menudo en sistemas embebidos .
Ejemplos:
Lenguajes de sombreado
Un lenguaje de sombreado es un lenguaje de programación gráfica adaptado para programar efectos de sombreado. Estas formas de lenguaje suelen constar de tipos de datos especiales, como "color" y "normal". Debido a la variedad de mercados objetivo para los gráficos por computadora 3D.
Renderizado en tiempo real
Ofrecen una mayor abstracción del hardware y un modelo de programación más flexible que los paradigmas anteriores, que codificaban de forma rígida las ecuaciones de transformación y sombreado. Esto proporciona al programador un mayor control sobre el proceso de renderizado y ofrece contenido más rico con menor sobrecarga.
- Lenguaje de ensamblaje de gráficos de Adobe (AGAL) [ 45 ]
- Lenguaje ensamblador ARB (ensamblaje ARB)
- Lenguaje de sombreado OpenGL (GLSL o glslang)
- Lenguaje de sombreado de alto nivel (HLSL) o lenguaje ensamblador de sombreadores de DirectX
- Lenguaje de sombreado de PlayStation (PSSL)
- Lenguaje de sombreado metálico (MSL)
- Cg
Renderizado sin conexión
Los lenguajes de sombreado utilizados en la renderización offline producen la máxima calidad de imagen. El procesamiento de estos sombreadores requiere mucho tiempo. La potencia de cálculo necesaria puede ser elevada debido a su capacidad para generar resultados fotorrealistas.
Lenguajes de manejo de sintaxis
Estos lenguajes ayudan a generar analizadores léxicos y 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 de Lex según la FSF)
- JavaCC
- lex (Análisis léxico, de Bell Labs)
- M4
- Gramática de expresiones de análisis sintáctico (PEG)
- Prólogo
- Emacs Lisp
- Ceceo
- Raku [ 46 ]
- SableCC
- Esquema
- yacc (otro compilador más, de Bell Labs)
- XPL
Lenguajes del sistema
Un lenguaje de programación de sistemas se utiliza para tareas de bajo nivel, como la gestión de memoria o la gestión de tareas; generalmente se refiere a un lenguaje utilizado para la programación de sistemas ; dichos lenguajes están diseñados para escribir software de sistema, que normalmente requiere enfoques de desarrollo diferentes en comparación con el software de aplicación.
El software de sistema es el software informático diseñado para operar y controlar el hardware de la computadora, y proporciona una plataforma para ejecutar software de aplicación. El software de sistema incluye categorías de software como sistemas operativos, software de utilidad, controladores de dispositivos, compiladores y enlazadores. Algunos ejemplos de lenguajes de sistema son:
Lenguajes de transformación
Los lenguajes de transformación sirven para transformar (traducir) el código fuente, especificado en un lenguaje formal determinado, a un código de formato de destino definido. Su uso más común se da en componentes intermedios de sistemas más complejos para adaptar los resultados internos a una rutina de procesamiento posterior.
Lenguajes visuales
Los lenguajes de programación visual permiten a los usuarios especificar programas de forma bidimensional (o multidimensional), en lugar de mediante cadenas de texto unidimensionales, a través de diseños gráficos de diversos tipos. Algunos lenguajes de programación de flujo de datos también son lenguajes visuales.
Idiomas de Wirth
El informático Niklaus Wirth diseñó e implementó varios lenguajes de programación influyentes.
- ALGOL W
- Euler
- Módulo
- Módulo-2 , Módulo-3 , variantes
- Variante Obliq Modula 3
- Módulo-2 , Módulo-3 , variantes
- Oberón (Oberon, Oberón-07, Oberón-2)
- Pascal
- Object Pascal (nombre genérico para Delphi , Free Pascal , Oxygene y otros)
Lenguajes basados en XML
Se trata de lenguajes basados en XML o que funcionan con XML .
- Hormiga
- Cω
- ECMAScript para XML
- Lenguaje de marcado de aplicaciones extensible (XAML)
- LZX
- XPath
- XQuery
- XProc
- Transformaciones de lenguaje de hojas de estilo extensibles ( XSLT )
Véase también
- paradigma de programación
- IEC 61131-3 : una norma para lenguajes de controladores lógicos programables (PLC).
- Lista de lenguajes de programación educativa
- Lista de lenguajes de marcado de documentos
- Lista de lenguajes de marcado
- Lista de lenguajes de programación de código abierto
- Lenguaje de programación esotérico
Notas
- ^ Algunas implementaciones de Ada incluyen un recolector de basura, [ 17 ] aunque la especificación del lenguaje no requiere su inclusión.
- ^ Inicialmente, los desarrolladores tuvieron que recuperar manualmente la memoria usando los
saveyrestore. PostScript Nivel 2 introdujo un recolector de basura, pero su uso es opcional. [ 28 ] - ^ En las plataformas de Apple, estas funciones se importan de la biblioteca estándar de C (que se importa desde
Foundation,AppKitoUIKit); en Linux, el desarrollador necesita importarGlibc, yucrten Windows. - Los objetos de SQL son colecciones de registros de base de datos , llamadas tablas. Un lenguaje de programación completopuede especificar algoritmos , independientemente del tiempo de ejecución . Por lo tanto, se puede considerar que un algoritmo genera resultados útiles. En cambio, SQL solo puede seleccionar registros que se limitan a la colección actual, los datos disponibles en el sistema, en lugar de producir una declaración sobre la corrección del resultado.
- Una excepción notable sería la CPU soviética/rusa de la serie 1801 , que originalmente utilizaba su propio conjunto de instrucciones nacional, pero que posteriormente fue rediseñada para ser compatible con PDP-11 como decisión política.
- ^ a b Los submodelos no se muestran, solo los modelos base.
- ^ El concepto de objeto con la semántica tradicional de despacho único de la programación orientada a objetos no está presente en Julia, sino que se utiliza el despacho múltiple más general en diferentes tipos en tiempo de ejecución.
- ^ Swift utiliza el conteo automático de referencias .
Referencias
- ^ "Operadores" . Consultado el 13 de mayo de 2024 .
- ^ "envolver" .
- ^ ""Aspectos del Raku"" .
- ^ Documentación » La biblioteca estándar de Python » Ejecución concurrente
- ^ "Canales y otros mecanismos" .
- ^ "Solucionador de problemas" .
- ^ Bright, Walter (1 de noviembre de 2014). "Lenguaje de programación D, programación por contrato" . Digital Mars . Recuperado el 10 de noviembre de 2014 .
- ^ Hodges, Nick. "Escriba código más limpio y de mayor calidad con contratos de clase en Delphi Prism" . Embarcadero Technologies. Archivado del original el 26 de abril de 2021. Recuperado el 20 de enero de 2016 .
- ^ Findler, Felleisen Contratos para funciones de orden superior
- ^ "Documentación de la biblioteca estándar de Scala - Aserciones" . EPFL . Consultado el 24 de mayo de 2019 .
- ^ Tipado fuerte como otra forma de "aplicar contratos" en Scala, ver discusión en scala-lang.org/ .
- ^ a b "Sintaxis basada en sangría · rsdn/nemerle Wiki" . GitHub . Consultado el 18 de marzo de 2022 .
- ^ "Solidity: Documentación de Solidity 0.8.11" .
- ^ "Iterador" .
- ^ a b "std::pointer_safety - cppreference.com" . en.cppreference.com . Consultado el 09-12-2024 .
- ^ JF Bastien; Alisdair Meredith (16 de abril de 2021). "Eliminación del soporte para la recolección de basura" .
- ^ "Recogida de basura conservadora para GNAT" . Página principal de Florian Weimer . Consultado el 12 de marzo de 2025 .
- ^ "Gestión de memoria · BlitzMax" . Consultado el 14 de julio de 2023 .
- ^ "Consejos · BlitzMax" . Consultado el 14 de julio de 2023 .
- ^ "BRL.Blitz · BlitzMax" . Consultado el 14 de julio de 2023 .
- ^ JF Bastien; Alisdair Meredith (16 de abril de 2021). "Eliminación del soporte para la recolección de basura" .
- ^ "Uso de punteros en un programa ILE COBOL - Documentación de IBM" . IBM . Junio de 2012. Consultado el 14 de julio de 2023 .
- ^ "HEAP - Documentación de IBM" . IBM . Consultado el 14 de julio de 2023 .
- ^ "Elementos del lenguaje COBOL orientado a objetos basados en SOM que se modifican - Documentación de IBM" . IBM . Consultado el 14 de julio de 2023 .
- ^ "Recolección de basura" . Lenguaje de programación D. Consultado el 18 de marzo de 2022 .
- ^ "Gestión de memoria de Nim" . Consultado el 18 de marzo de 2022 .
- ^ "Acerca de la administración de memoria" . Apple Developer . Consultado el 12 de marzo de 2025 .
- ^ Adobe (febrero de 1999). Referencia del lenguaje PostScript, tercera edición (PDF) . Addison-Wesley Publishing Company. págs. 56–65 .
- ^ "Documentación V" . Consultado el 12 de marzo de 2025 .
- ^ "Proyectos/Vala/Manejo de referencias - ¡GNOME Wiki!" . Archivado del original el 21/01/2024 . Recuperado el 21/03/2022 .
- ^ "Asignación de memoria — Documentación de Cython 3.0.0.dev0" . Consultado el 14 de julio de 2023 .
- ^ "Interoperabilidad de código nativo – Documentación de Scala Native 0.4.14" . Consultado el 5 de julio de 2023 .
- ^ "Comprendiendo 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 CACM 29 (8) "Little Languages", págs. 711-721 de su columna Programming Pearls
- ^ "Metaprogramación: qué, por qué y cómo" . 14 de diciembre de 2011.
- ^ "Macros procedimentales para generar código a partir de atributos" . doc.rust-lang.org .
- ^ Especificación del lenguaje ECMAScript® 2015, 15.2 Módulos
- ^ "Módulo de clase - Documentación para Ruby 3.5" .
- ^ "Clases y roles" .
- ^ "Protocolo de meta-objetos (MOP)" .
- ^ El equipo de Rust (25 de mayo de 2026). "Módulo cualquiera" . docs.rust-lang.org . El equipo de Rust.
- ^ El equipo de Rust (25 de mayo de 2026). "Campo de módulo" . docs.rust-lang.org . El equipo de Rust.
- ^ "JBang" . jbang.dev . Consultado el 11 de septiembre de 2025 .
- ^ Scabia, Marco. "¿Qué es AGAL?" . Adobe Developer Connection . Adobe . Consultado el 8 de mayo de 2018 .
- ^ "Gramáticas" .
- ^ Wulf, WA; Russell, DB; Haberman, AN (diciembre de 1971). "BLISS: Un lenguaje para la programación de sistemas". Communications of the ACM . 14 (12): 780– 790. CiteSeerX 10.1.1.691.9765 . doi : 10.1145/362919.362936 . S2CID 9564255 .
- ^ "Aplicaciones C++" .
- ^ "Organizaciones que utilizan el lenguaje D" . Lenguaje de programación D.
- ^ "Investigación de Mozilla" . 1 de enero de 2014.
- Listas de lenguajes de programación
- lenguajes de programación de matrices