Compiladores, Intérpretes y Entornos de desarrolo

COMPILADORES DE LENGUAJES

Un compilador es un programa informático, que se encarga de traducir el código fuente de una aplicación que esté en desarrollo.  Convierte un programa hecho en lenguaje de programación de alto nivel a un lenguaje de máquina, el cual es conocido como de bajo nivel, de tal forma que sea  más entendible y mucho más fácil de procesar en el equipo en el que se esta ejecutando.

En el desarrollo de un programa, durante la fase de codificación se lleva a cabo la compilación, que consiste en que el compilador traducirá el código fuente a código máquina, también llamado código objeto, siempre y cuando, el propio compilador no detecte ningún error en dicho código fuente.

 

CONVERSION
La imagen ilustra como el código fuente ingresado por el programador es convertida a lenguaje máquina para traducirse en un programa ejecutable.

 

CONVERSION 2
Secuencia empleada por un compilador para llegar desde el código fuente al código máquina resultante antes de ejecutarse.

 

CONVERSION 3
Ejemplo de una compilación de codigo fuente escrito con lenguaje de programación Java.

INTÉRPRETES DE LENGUAJES

Es un programa capaz de analizar y ejecutar programas escritos en un determinado lenguaje de programación.

Los intérpretes se diferencian de los compiladores  en que mientras estos traducen un programa desde su código fuente  escrito en un lenguaje de programación al código máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y una PlayStation 4).

Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos códigos ejecutables específicos a cada sistema.

interprete
Secuencia que realiza un intérprete para llegar desde el código fuente al código máquina a medida que se va ejecutando.

NIVELES DE LENGUAJES DE PROGRAMACIÓN

Los lenguajes de programación tienen una estructura que permite a los programadores diseñar programas de una forma mucho más amigable y comprensible que si tuvieran que hacerlo directamente en el código máquina que entiende la computadora, el  cual se compone únicamente de ceros y unos. De acuerdo a la complejidad de la traducción que existe para llegar de un lenguaje formal de programación al lenguaje máquina se determinan los siguientes niveles:

niveles

DEPURACIÓN DE PROGRAMAS

La depuración de un programa es el proceso de identificar y corregir errores de programación. En inglés se le conoce como debugging y si bien existen depuradores que permiten encontrar errores sistemáticos existen prácticas manuales asociadas a la calidad del software en desarrollo.

ENTORNO DE DESARROLLO INTEGRADO (IDE)

Un entorno de desarrollo integrado es un entorno de programación conformado por un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI).

Algunos ejemplos de entornos de desarrollo:

Entornos para C++:

  • Borland C
  • Code Blocks

Entornos para Java:

  • Netbeans
  • Jcreator
  • Eclipse

Entornos para VB, C#, Asp.Net:

  • Microsoft Visual Studio

 

Continúa aquí con el siguiente post.

Introducción básica

En este primer post, como era de esperarse, veremos un poco de teoría introductoria, solo un poco antes de comenzar con la acción, si bien suele ser la parte aburrida para muchos, es necesaria para el manejo de conceptos básicos que se utilizaran en la práctica.

Informática es un término que reúne dos conceptos, el de “información” y el de “automático”. De esta forma, la informática se refiere al procesamiento automático de datos mediante dispositivos electrónicos y sistemas computacionales para así obtener información útil para el usuario.

proceso

Para que las máquinas y computadoras puedan procesar datos ingresados, se utilizan algoritmos cuyas instrucciones indican como será el procesamiento de estos para así devolver información útil para el usuario.

ALGORITMOS

Un algoritmo es una lista bien definida, ordenada y finita de operaciones, que permite encontrar la solución a un problema determinado. Es conceptual y se puede describir usando el lenguaje natural que usamos día a día, diagramas de flujo o pseudocódigo para luego ser implementado en uno o varios lenguajes formales de programación.

PSEUDOCÓDIGO

Se llama pseudocódigo a una forma intermedia entre usar lenguaje natural y un lenguaje de programación. No posee una forma estricta pero normalmente se respeta lo siguiente:

Se usa el concepto de variable y asignación.

Ej: “a <- 5” significa que a la variable a se le asignó el valor 5.

Se indican los datos de entrada y de salida.

Utilizan instrucciones condicionales e instrucciones de ciclo.

Ejemplo 1:

//Algoritmo para definir si un triángulo es escaleno, isósceles o equilátero.

Datos de entrada: l1, l2, l3 //lados del triángulo

Datos de salida: tipo

Algoritmo triangulos
	Si (lado1 = l2) y (l1 = l3) entonces
	  tipo <- equilátero
	sino
	   Si (l1=l2) ó (l1=l3) ó (l2=l3) entonces
	      tipo <- isósceles
	   Sino
	       tipo <- escaleno
	   FinSi
	FinSi
FinAlgoritmo

Ejemplo 2:

//Algoritmo que suma los números del 1 al 9 inclusive.
	nro <- 1
	resultado <- 0
		Mientras nro<=9
			resultado <- resultado + nro
			nro <- nro +1
		Fin Mientras
	Escribir resultado
FinAlgoritmo

Ejemplo 3:

//Algoritmo que suma los números pares comprendidos entre
 1 y 15 inclusive.

Algoritmo suma
	nro <- 1
	resultado <- 0
		Mientras nro<=15
	  		Si nro MOD 2 = 0 entonces 
	                    resultado <- resultado + nro 			
                        FinSi 			
                        nro -> nro+1
		Fin Mientras
	Escribir resultado
FinAlgoritmo

 

  • En el ejemplo anterior se utiliza la función MOD, la cual calcula el resto de la división entre dos nrosSi el resto de la división del nro por 2 es 0 entonces es par y se suma al resultado, de lo contrario es impar y no se suma al resultado.

DIAGRAMA DE FLUJO DE DATOS (DFD)

El diagrama de flujo es una metodología gráfica de representar un algoritmo, cada instrucción existente en pseudocódigo tiene su correspondiente símbolo gráfico en DFD. Favorecen la comprensión de un proceso mediante el uso de un dibujo.
La simbología en DFD puede variar un poco de acuerdo a la aplicación que la grafique y sus normas de estandarización pero en general se utilizan las que muestra la siguiente imagen:

simbolos

Ejemplo : En el siguiente ejemplo se presenta un algoritmo que determina si un número es positivo o negativo y a lado se muestra su gráfico correspondiente en DFD:

InicioAlgoritmodfd1

Leer n

Si n > 0 entonces

        Escribir “Positivo”

Sino

        Escribir  “Negativo”

FinAlgoritmo

PROGRAMA

Básicamente, un programa informático es un conjunto de instrucciones en forma secuencial, que a través de su interpretación por el sistema operativo o hardware, le permiten desarrollar una tarea específica a una computadora.

Diferencias entre Programas y Algoritmos:

  • Cuando hablamos de programa siempre existe la idea de que será ejecutado por una computadora mientras que un algoritmo podría ser ejecutado por una persona.
  • Un programa está escrito en lenguaje máquina o por lo menos en un lenguaje de programación que pueda ser compilado o interpretado por algún tipo de máquina.

LENGUAJES DE PROGRAMACIÓN

  • Es un idioma artificial diseñado para expresar instrucciones que pueden ser llevadas a cabo por máquinas y computadoras.
  • Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

Algunos ejemplos de lenguajes de programación son los siguientes:

LOGOS

CÓDIGO FUENTE DE UN PROGRAMA

El código fuente es el archivo con las instrucciones necesarias escritas en un lenguaje de programación, que sirve para compilar posteriormente un programa que pueda ser utilizado por el usuario de forma directa ejecutándolo.

Ejemplo 1: Código fuente en lenguaje de programación C

C

Ejemplo 2: Código fuente en lenguaje de programación Java

java

Ejemplo 3: Código fuente en lenguaje de programación PHP

php

Continúa aquí con el siguiente post.