En informática, las primitivas del lenguaje son los elementos más simples disponibles en un lenguaje de programación . Una primitiva es la "unidad de procesamiento" más pequeña disponible para un programador de una máquina determinada, o puede ser un elemento atómico de una expresión en un lenguaje.
Los primitivos son unidades con un significado, es decir, un valor semántico en la lengua. Por lo tanto, son diferentes de los tokens en un analizador , que son los elementos mínimos de la sintaxis .
Una instrucción de máquina , generalmente generada por un programa ensamblador , suele considerarse la unidad más pequeña de procesamiento, aunque no siempre es así. Por lo general, realiza lo que se percibe como una operación, como copiar un byte o una cadena de bytes de una ubicación de memoria de computadora a otra o agregar un registro de procesador a otro.
Muchas de las computadoras actuales , sin embargo, en realidad incorporan una unidad de procesamiento aún más baja conocida como microcódigo que interpreta el código de la máquina y es entonces cuando las instrucciones del microcódigo serían las primitivas genuinas . Estas instrucciones normalmente estarían disponibles para modificación únicamente por parte de los programadores del proveedor de hardware .
Un programa de lenguaje de programación de alto nivel (HLL) se compone de declaraciones discretas y tipos de datos primitivos que también pueden percibirse como que realizan una sola operación o representan un solo elemento de datos, pero en un nivel semántico más alto que los proporcionados por la máquina. Copiar un elemento de datos de una ubicación a otra puede implicar en realidad muchas instrucciones de máquina que, por ejemplo,
antes finalmente
Algunas declaraciones HLL, particularmente aquellas que involucran bucles , pueden generar miles o incluso millones de primitivas en un lenguaje de programación de bajo nivel (LLL), que comprenden la longitud genuina de la ruta de instrucción que el procesador debe ejecutar en el nivel más bajo. Esta percepción se ha denominado penalización por abstracción . [1] [2] [3]
Una declaración de lenguaje interpretado tiene similitudes con las primitivas HLL, pero con una capa adicional . Antes de que la declaración pueda ejecutarse de una manera muy similar a una declaración HLL: primero debe ser procesada por un intérprete , un proceso que puede involucrar muchas primitivas en el lenguaje de máquina de destino.
Los lenguajes de programación de cuarta generación (4GL) y los lenguajes de programación de quinta generación (5GL) no tienen una correspondencia simple de uno a muchos entre primitivas de nivel alto a bajo. Hay algunos elementos de primitivos del lenguaje interpretado incorporados en las especificaciones 4GL y 5GL, pero el enfoque del problema original es menos una construcción de lenguaje procedimental y está más orientado a la resolución de problemas y la ingeniería de sistemas .