Download compiladores e interpretes

Document related concepts

Haxe wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

Logo (lenguaje de programación) wikipedia , lookup

Ocaml wikipedia , lookup

Transcript
PROGRAMACIÓN 1
INTRODUCCIÓN
Prof. Rafael Mourglia
¿Qué es un programa?


Pensar una situación común donde podemos
encontrar un programa (no necesariamente
relacionado a la informática)
¿Qué características tienen estas acepciones de la
misma palabra?
Programa



Instrucciones de computación estructuradas y
ordenadas que al ejecutarse hacen que una
computadora realice una función particular.
Un programa informático (software) es la unión de
una secuencia de instrucciones que una computadora
puede ejecutar e interpretar. Además incluye una (o
varias) estructuras de datos que almacena la
información que es independiente de las instrucciones
que dicha secuencia de instrucciones maneja.
Para ello se usan lenguajes de programación que
sirven para programar la secuencia de instrucciones
requerida.
Lenguaje de programación



Un lenguaje de programación es un conjunto acotado
de ‘palabras’ y signos, y unas reglas de cómo combinar
estas palabras y signos.
Si se miran los lenguajes de programación más
habituales, se observa que estos son un ‘pseudoinglés’
reducido y con abundante formalismo.
Así, palabras que aparecen en lenguajes de
programación son, por ejemplo ‘if…then…else’ para
establecer condiciones, ‘integer’, ‘real’, etc para
denominar variables de tipo numérico, ‘print’ para
imprimir o mostrar en pantalla, etc,
Lenguajes de Alto y Bajo Nivel
Bajo Nivel: Muy similar al código de máquina.
Ventaja de utilizar recursos de la máquina al
máximo. Propio del microprocesador
 Alto Nivel:· Independiente del
microprocesador. Más cercano a las
habilidades de los humanos. De mucha mayor
productividad en la generación de programas.
Pseudoinglés.

Compiladores e interpretes

Para lograr que un programa se ejecute es necesario
transformar un lenguaje de alto nivel en un lenguaje de
bajo nivel y esto se realiza de la siguiente manera:



El programador con un editor de texto (IDE) escribe el programa
con el lenguaje de alto nivel elegido. A esto se llama código
fuente.
Otro programa, realiza la traducción de este código fuente al
lenguaje máquina propio del microprocesador. Estos programas
son los llamados compiladores e interpretes.
Luego, el programa, ya en lenguaje máquina, debe ponerse al
alcance del microprocesador. Esto, en el caso de programas
compilados, se realiza mediante los denominados programas
cargadores que forman parte ya del sistema operativo.
Compiladores e interpretes
Programa Cargador
(SO)
Compiladores e interpretes



Los compiladores realizan una traducción del
código fuente y dejan el programa completo
previo a la ejecución. Por ejemplo C.
Los intérpretes realizan la traducción en tiempo de
ejecución. Un lenguaje interpretado es JavaScript
Existe una alternativa que consiste en definir una
máquina virtual, que genera un lenguaje propio
de la máquina virtual (que no coincide con el
lenguaje del micro real, y del primero a éste
último se realiza interpretado. Ejemplo Java.
Compiladores e interpretes
Clasificación de Lenguajes de
Programación

Según el enfoque de solución:
 Imperativos
 Declarativos

Según el paradigma de programación:
 Procedural
 Eventos?
 Orientado
 Funcional
 Lógica
a Objetos
Clasificación de Lenguajes de
Programación

Según evolución histórica:
 Primera generación: lenguaje de máquina
 Segunda generación: Lenguajes simbólicos o
ensambladores
 Tercera generación: Primeros lenguajes de alto
nivel. El código ya no depende del computador.
 Cuarta generación: El programador indica
“que” debe hacer el programa y no “como”
debe hacerlo.
Algoritmos


Para resolver un problema el programador debe definir claramente
el conjunto de instrucciones (pasos) que se la dará a la máquina.
Método: Secuencia ordenada de pasos muy precisos que conducen a
la solución de un problema, en un tiempo finito, se conoce como un
método.
Ejemplo: Búsqueda de un número en una agenda telefónica
1. Buscar la página de la agenda marcada con la inicial de la
persona.
2. Dentro de la página, buscar hasta encontrar el nombre de la
persona.
3. Tomar el número telefónico.
Algoritmos

Algoritmo: En un algoritmo, se identifican: un
conjunto de valores de entrada, un método y una
salida. El método establece la forma en que se
deben procesar los datos de entrada para producir
los valores de salida.
Algoritmos

Un poco más formal:
Algoritmos

Nota: Utilizaremos siempre las mismas
“palabras reservadas”