Un compilador es un software que traduce los programas escritos de un lenguaje de programación (de alto nivel) a otro lenguaje de programación (lenguaje de maquina) que es de bajo nivel y es mas entendible y de fácil proceso para la máquina.


El compilador hace este proceso en diferentes fases, toma el código fuente del programa, después comienza el proceso de análisis el cual se divide en: análisis del léxico, en donde se identifican los diferentes tokens en el código fuente, en esta parte no se analizan si están bien o mal el código, solo se identifican todos los tokens que hay en el Código fuente , análisis de la sintaxis, que especifica las reglas para crear un programa apropiado en este lenguaje, es decir comprueba que la secuencia de códigos cumplan las reglas de gramática y genera un árbol sintáctico, y después la semántica, esto lo hace para entender las instrucciones y organizarla de forma que haga sentido al traducir la información del lenguaje de programación, utilizando el árbol sintáctico para comprobar las restricciones de tipo de dato y otras limitaciones semánticas y preparar así la generación de Código intermedio después comienza el proceso de síntesis en el cual genera un código intermedio entre estos dos lenguajes, lo optimiza y genera un código en el lenguaje de máquina.


El término ensamblador (del inglés assembly) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por el microprocesador.


¿Qué es el lenguaje ensamblador?

Es un lenguaje de programación de bajo nivel utilizado para darle instrucciones a los microprocesadores, microcontroladores y otros circuitos integrados programables ya que implementa una representación simbólica de los códigos de maquina binarios y otras constantes necesarias para programar una arquitectura de código. Constituye la representación más directa del código de maquina específico para cada arquitectura legible por un programador.

El ensamblador lo podemos considerar como un lenguaje de programación muy simple y dependiente de hardware. Estas características lo hacen muy eficiente pero muy poco portable e incompatible con diferentes familias de microprocesadores

Fue usado en los inicios del desarrollo de softwares para cuando no se contaban con lenguajes de alto nivel y los recursos eran altamente limitados, actualmente se utiliza en ambientes académicos y de investigación cuando se requiere la manipulación directa ce hardware, altos rendimientos o uso de recursos controlado y reducido. Muchos dispositivos programables como los microcontroladores cuentan con el lenguaje ensamblador como único recurso para ser manipulados.

El lenguaje ensamblador es mucho mas simples para escribir que los compiladores de alto nivel y están disponibles desde 1950.

Diagramas de flujo para programación


El diagrama de flujo es una representación gráfica de un algoritmo. Los programadores a menudo lo usan como una herramienta de planificación de programas para resolver un problema. Utiliza símbolos que están conectados entre ellos para indicar el flujo de información y procesamiento.

 

El proceso de dibujar un diagrama de flujo para un algoritmo se conoce como "diagrama de flujo".

 

Un diagrama de flujo en programación es una forma de representar un programa con un conjunto de símbolos gráficos estándar para reproducir la secuencia de instrucciones codificadas que se introducen en una computadora, lo que le permite realizar operaciones lógicas y aritméticas específicas.

 

Es una gran herramienta para mejorar la eficiencia del trabajo. Hay cuatro símbolos básicos en el diagrama de flujo del programa, inicio, proceso, decisión y finalización. Cada símbolo representa una parte del código escrito para el programa.

 

 

El propósito de un diagrama de flujo es hacer que un programa complejo sea fácil y legible, lo que significa que debe confirmar su tema central y expresarlo simplemente con varios pasos.

 

Ejemplo:

 

Dibujar un diagrama de flujo para un programa en donde se introducen dos números y que imprima el mayor de los dos.



 

Asi se ve el programa en lenguaje "C":


 // Programa en C para encontrar el mas grande de dos numeros

 

#include <stdio.h>

 

int main()

{

int num1, num2, largest;

 

/*Introducir los dos numeros*/

printf("Enter two numbers:\n");

scanf("%d%d", &num1, &num2);

 

/*checar si a es mayor que b*/

if (num1 > num2)

largest = num1;

else

largest = num2;

 

/*Imprimir el numero mayor*/

printf("%d", largest);

 

return 0;

}


 

 


Historia de la programación

La historia de los lenguajes de programación abarca desde la documentación de las primeras computadoras mecánicas hasta las herramientas modernas para el desarrollo de software.

Los primeros lenguajes de programación eran altamente especializados y dependían de la notación matemática y de una sintaxis oscura similar.


Código Fuente

El Código fuente es el termino que se utiliza comúnmente en informática o ingeniería de software por los programadores para referirse a las instrucciones secuenciales o algoritmos utilizados para crear un programa o software que será leído y ejecutado por una computadora.

El Código fuente está escrito en algún lenguaje de programación y a menos que este escrito en lenguaje de maquina (o bajo nivel) la computadora no lo puede ejecutar por si sola, primero es necesario convertirlo a lenguaje de maquina para que lo entienda.