En informática, los primitivos del lenguaje son los elementos más simples disponibles en un lenguaje de programación . Un primitivo 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 el lenguaje. Por lo tanto, son diferentes de los tokens en un analizador sintáctico , 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 de procesamiento más pequeña, aunque no siempre es así. Normalmente 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 la computadora a otra o agregar un registro de procesador a otro.
Sin embargo, muchas de las computadoras actuales 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 los elementos primitivos genuinos . Estas instrucciones normalmente solo estarían disponibles para su modificación por parte de los programadores del proveedor de hardware .
Un programa de lenguaje de programación de alto nivel (HLL) se compone de instrucciones discretas y tipos de datos primitivos que también pueden percibirse como si realizaran una sola operación o representaran un solo elemento de datos, pero a 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 de finalmente
Algunas instrucciones HLL, en particular las que implican bucles , pueden generar miles o incluso millones de primitivas en un lenguaje de programación de bajo nivel (LLL), que comprenden la longitud real de la ruta de instrucciones que el procesador debe ejecutar en el nivel más bajo. Esta percepción se ha denominado penalización de 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 desde los primitivos de alto a bajo nivel. Hay algunos elementos de los primitivos de lenguaje interpretado incorporados en las especificaciones de 4GL y 5GL, pero el enfoque al 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 .