0% encontró este documento útil (0 votos)
46 vistas5 páginas

Lenguajes de Programación de Bajo Nivel

Este documento describe los lenguajes de programación de bajo y alto nivel. Los lenguajes de bajo nivel como el lenguaje máquina y ensamblador se comunican directamente con el hardware. Los lenguajes de alto nivel como C, Python y Java permiten una programación más abstracta e independiente del hardware y se compilan a código de máquina. También clasifica diferentes tipos de compiladores y ensambladores para lenguajes de bajo y alto nivel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
46 vistas5 páginas

Lenguajes de Programación de Bajo Nivel

Este documento describe los lenguajes de programación de bajo y alto nivel. Los lenguajes de bajo nivel como el lenguaje máquina y ensamblador se comunican directamente con el hardware. Los lenguajes de alto nivel como C, Python y Java permiten una programación más abstracta e independiente del hardware y se compilan a código de máquina. También clasifica diferentes tipos de compiladores y ensambladores para lenguajes de bajo y alto nivel.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Lenguaje de programación de bajo nivel

Este tipo de lenguajes están referidas a aquellas pautas de actuación que están muy ligadas a
las instrucciones del hardware y, además, suelen depender de los ordenadores que utilizan
dicho lenguaje.
Principalmente el aspecto que más va a incidir de la computadora es el físico. El lenguaje de
bajo nivel apenas se separa del hardware al que acompaña, pero no por ello va a ser menos
potente.
Uno de sus rasgos principales se encuentra relacionado con la forma en la cual actúa de una
manera directa en comunicación con el hardware. Es un lenguaje muy utilizado para sistemas
operativos, control de todo tipo de máquinas o aplicaciones que usan sistemas en tiempo real.
Tipos:
Código binario: el código binario se utiliza en la codificación de datos, tales como cadenas de
caracteres, o cadenas de bits Por ejemplo en el caso de un CD, las señales que reflejarán el
"láser" que rebotará en el CD y será registrado por un sensor de distinta forma indicando así, si
es un cero o un uno.
Lenguaje máquina: es el sistema de códigos directamente interpretable por un circuito
programable, como el microprocesador de una computadora o el microcontrolador de
un autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan
acciones a ser tomadas por la máquina.
Lenguaje ensamblador: Cuando se compila un programa en Ensamblador, el compilador de
Ensamblador realiza
automáticamente la traducción de los mnemónicos a Código Máquina (conjunto de bits), que es
el
único lenguaje que entiende la CPU. Durante mucho tiempo el ensamblador ha sido el lenguaje
utilizado de manera casi mayoritaria para programar microcontroladores.

ARM workbench IDE Crosscore Embedded Studio (Analog devices)


MPLAB XC8 Compiler E2 studio IDE (Renesas electronics)
MPASM(Microchip)
NHET-ASSEMBLER IDE(TI)
AVR Studio (Microchip)
Clasificación de lenguajes ensambladores.
Ensambladores Cruzados (Cross-Assembler)
Se denominan así los ensambladores que se utilizan en una computadora que posee un
procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa
objeto producido. El empleo de este tipo de traductores permite aprovechar el soporte de
medios físicos (discos, impresoras, pantallas, etc.
Ensambladores De Una Fase
Estos ensambladores leen una línea del programa fuente y la traducen directamente para
producir una instrucción en Lenguaje maquina o la ejecuta si se trata solo de una pseudo
instrucción.
Ensambladores De Dos Fases
Los ensambladores de dos fases se denominan así debido a que realizan la traducción en dos
etapas. En la primera fase, leen el programa fuente y construyen una tabla de símbolos. De
esta manera, en la segunda fase vuelven a leer el programa fuente y pueden ir traduciendo
totalmente,
Ensambladores Residentes
Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el
programa sin necesidad de transportarlo un lugar a otro, como se hacía en cross assembler, y
sin necesidad de programas simuladores. Sin embargo, puede presentar problemas de espacio
de memoria, ya que el traductor ocupa espacio que no puede ser utilizado.
Macroensambladores
Son ensambladores que permiten el uso de microinstrucciones (macros). Debido a que su
potencia, normalmente son programas robustos que no permanecen en memoria una vez
generado el programa objeto, normalmente son programas bastantes complejos, por lo que
suelen ser ensambladores residentes.
Micro ensambladores
Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de
instrucciones, es decir, que el intérprete de las mismas interpretaba de igual forma un
determinado código de operación. El programa que indica al intérprete de instrucciones de la
CPU como debe actuar se denomina microprograma. El programa que ayuda a realizar esta
microprograma se llama micro ensamblador.
Lenguaje de programación de alto nivel
Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una
manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad con que los
ejecutan las máquinas. Estos lenguajes permiten una máxima flexibilidad al programador a la
hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje máquina
y una expresión casi oral entre la escritura del programa y su posterior compilación. Por lo
general suelen estar orientados a objetos, a eventos o a funciones, pudiendo estos
combinarse. Asimismo, pueden ser compilados o interpretados.
Lenguaje de alto nivel se refiere al nivel más alto de abstracción de lenguaje de máquina. En
lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto
nivel se refieren a las variables, matrices, objetos, aritmética compleja o expresiones
booleanas, subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informática
abstracta, con un enfoque en la facilidad de uso sobre la eficiencia óptima del programa.
La programación en lenguaje de alto nivel permite la creación de programas
independientemente de la plataforma utilizada, ya estemos hablando de microprocesadores o
microcontroladores.
Además, hay que tener en cuentan que los microcontroladores evolucionaron a partir de los
microprocesadores y no al revés, los microcontroladores aparecieron en la industria por la
necesidad de tener sistemas programados embebidos, es decir que tanto CPU, memoria y
periféricos estuvieran integrados dentro de un mismo circuito integrado.

Clasificación de los lenguajes de altoi nivel según su aplicación:

Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y Ada.

Lenguajes de programación declarativos: el Lisp y el Prolog.

Lenguajes de programación orientados a objetos: el Smalltalk y el C++.

Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para


gestión.

Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el
diseño y la construcción de programas al lenguaje de las personas.
Clasificación de los lenguajes de alto nivel según su generación:

Lenguajes de programación de primera generación: el lenguaje máquina y el


ensamblador.

Lenguajes de programación de segunda generación: los primeros lenguajes de


programación de alto nivel imperativo (FROTRAN, COBOL).

Lenguajes de programación de tercera generación: son lenguajes de programación de


alto nivel imperativo, pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I,
PASCAL, MODULA).

Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y


manejo de bases de dados (NATURAL, SQL).

Lenguajes de programación de quinta generación: creados para la inteligencia artificial


y para el procesamiento de lenguajes naturales (LISP, PROLOG).

Clasificación de los compiladores:

Compilador cruzado: Es un compilador capaz de crear código ejecutable para


otra plataforma distinta a aquella en la que el compilador se ejecuta. Esta herramienta es
útil cuando quiere compilarse código para una plataforma a la que no se tiene acceso, o
cuando es incómodo o imposible compilar en dicha plataforma (como en el caso de
los sistemas embebidos). Ejemplo: NASM

Compilador Optimizador es un compilador que trata de minimizar ciertos atributos de


un programa informático con el fin de aumentar la eficiencia y rendimiento. Se aplican
generalmente mediante una secuencia de transformaciones de
optimización, algoritmos que transforman un programa para producir otro con una
salida semánticamente equivalente pero optimizado.

Compiladores de una sola pasada: generan el código máquina a partir de una única
lectura del código fuente.

Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de
poder producir el código máquina
Compilación en tiempo de ejecución: es una técnica para mejorar el rendimiento de
sistemas de programación que compilan a bytecode, consistente en traducir
el bytecode a código máquina nativo en tiempo de ejecución. En un sistema que
use interpretación de bytecode como por ejemplo Smalltalk, Perl, GNU CLISP o las
primeras versiones de Java, el código fuente es traducido a un código
intermedio llamado bytecode.
Ejemplos de compiladores para microcontroladores para lenguajes de alto nivel.

Lenguaje Compilador
C/C++ /ANSII C CCS C Compiler (Microchip), CCStudio IDE (TI), TI.CGT IDE (TI),
Atmel Studio (ATMEL), cs+ (Renesas electronics), MIKRO C (Microchip)
MPLAB C18 (familiar PIC de 8 bits), MPLAB C24 (Pic de 16 bits), MPLAB C32
(Pic de 32 bits), PICC (HI-TECH) (24 y 32 bits), PCW Compiler (fabricate CCS:
Custom Computer Services), MPC (Byte Graft), CC5X (B. Knudsen),
SDCC Compiler (PIC de 16 y 18 bits, Zilog Z80)
Python Thonny Python IDE (Raspberry pi), MU IDE
Scratch Scratch++ Compiler
Java Netbeans (Raspberry pi), BlueJ(Raspberry pi), Greenfoot
IDE(Raspberry pi)

También podría gustarte