Sei sulla pagina 1di 12

ELECTIVA

BASICA DE INGENIERIA II

TRABAJO DE CONCEPTOS

PRESENTADO POR:
ANDREA BAQUERO PEÑALOZA
161206205
JHONAIMER DIAZ CERQUERA
161206215

PRESENTADO A:
EMIRO SANABRIA
Ingeniero - Docente

GRUPO:
801

UNIVERSIDAD DE CUNDINAMARCA “UDEC”


FACULTAD DE INGENIERIA
PROGRAMA DE INGENIERIA DE SISTEMAS
ELECTIVA BASICA DE INGENIERIA II
FUSAGSUGA
2010
ELECTIVA
BASICA DE INGENIERIA II

1. COMPILADOR Vs. INTERPRETADOR Vs. ENCADENADOR

• COMPILADOR

Generalmente un compilador se divide en dos partes:


* Front End: parte que analiza el código fuente, comprueba su validez, genera el
árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele
ser independiente de la plataforma o sistema operativo para el que funcionará.

* Back End: parte en donde se genera el código máquina exclusivo para una
plataforma a partir de lo analizado en el front end.
A grandes rasgos el proceso se puede describir en los siguientes pasos:
* El compilador recibe el código fuente.
* Se analiza lexicográficamente.
* Se analiza semántica y sintácticamente (parseado).
* Se genera el código intermedio no optimizado.
* Se optimiza el código intermedio.
* Se genera el código objeto para una plataforma específica.
Finalmente ya puede ejecutarse el código máquina.
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede
haber compiladores que se adscriban a varias categorías:
• Compiladores cruzados: generan código para un sistema distinto del que
están funcionando.
• Compiladores optimizadores: realizan cambios en el código para mejorar
su eficiencia, pero manteniendo la funcionalidad del programa original.

• 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.
• Compiladores JIT (Just In Time): forman
parte de un intérprete y compilan partes del
código según se necesitan.

INTERPRETES
ELECTIVA
BASICA DE INGENIERIA II

Es un programa informático capaz de analizar y ejecutar otros programas,


escritos en un lenguaje de alto nivel.
Estos sólo realizan la traducción a medida que sea necesaria, típicamente,
instrucción por instrucción, y normalmente no guardan el resultado de dicha
traducción.
Los programas interpretados suelen ser más lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son más
flexibles como entornos de programación y depuración.
Que analiza el programa fuente y lo ejecuta directamente, sin generar ningún
código equivalente. Su acción equivale a la de un intérprete humano, que traduce
las frases que oye sobre la marcha, sin producir ningún escrito permanente.

ENCADENADOR

En programación, un enlazador es un módulo o programa que junta los ficheros de


código objetos (generados en la primer parte de la compilación), la información de
todos los recursos necesarios (biblioteca), elimina los recursos que no se
necesitan y enlaza el código objeto con sus bibliotecas. Finalmente produce el
fichero ejecutable o una biblioteca.
Existen programas que se enlazan dinámicamente, esto significa que este proceso
se hace en el momento que se carga el programa.

Para conseguir el programa maquina real se debe utilizar un programa llamado


montador o enlazador (linker). El proceso de enlazador conduce a un programa en
lenguaje máquina directamente ejecutable.
El enlazador, en C, es necesario por varias razones:
• El programa necesitara ser combinado con varias bibliotecas de rutinas.
• tal vez no desees compilar el programa completo ya que muchos
programas en C grandes consisten de archivos separados que tal vez ya
estén compilados.
El proceso de una ejecución de un programa en C tiene los siguientes pasos:
1. Escritura del programa fuente con un editor.
2. Introducir el programa fuente en memoria.
3. Compilar el programa.
4. Verificar y corregir errores de compilación.
ELECTIVA
BASICA DE INGENIERIA II

5. Obtención del programa objeto.


6. El enlazador obtiene el programa ejecutable.
7. Se ejecuta el programa si no existen errores.

COMPILADOR Vs. INTERPRETADOR Vs. ENCADENADOR

 Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa


puede interrumpirse en cualquier momento para estudiar el entorno (valores de
las variables, etc.). Además, el programa puede modificarse sobre la marcha,
sin necesidad de volver a comenzar la ejecución.
 Un compilador suele generar programas más rápidos y eficientes, ya que el
análisis del lenguaje fuente se hace una sola vez, durante la generación del
programa equivalente. En cambio, un intérprete se ve obligado generalmente a
analizar cada instrucción tantas veces como se ejecute (incluso miles o millones
de veces).
 Un intérprete permite utilizar funciones y operadores más potentes, como por
ejemplo ejecutar código contenido en una variable en forma de cadenas de
caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por
medio de compiladores. Los lenguajes que incluyen este tipo de operadores y
que, por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes
compilativos, que permiten el uso de un compilador, prescinden de este tipo de
operadores.

1. TOKEN Vs. VARIABLE

TOKEN

En programación, un elemento individual en un lenguaje de programación. Es un


bloque de texto categorizado. Por ejemplo una marca de puntuación, un operador,
un identificador, un número, etc.
Son los elementos en que el preprocesador desmenuza el código fuente. En un
lenguaje de programación, los tokens son el equivalente a las palabras y signos de
puntuación en el lenguaje natural escrito. Los tokens están separados por
elementos de separación que reciben el nombre genérico de separadores.

VARIABLE
En programación, una variable es un espacio de memoria reservado para
almacenar un valor que corresponde a un tipo de dato soportado por el lenguaje
ELECTIVA
BASICA DE INGENIERIA II

de programación. Una variable es representada y usada a través de una


etiqueta (un nombre) que le asigna un programador o que ya viene
predefinida.

Por ejemplo, en la variable de nombre "num", se almacena el número 8 (de tipo


entero). De forma genérica, para utilizarla y sumarle un uno se debería programar:
num = num + 1.
Una variable puede ser del tipo booleano, entero, decimal de coma flotante,
carácter, cadena de texto, arreglo, matriz, tipo definido por el usuario, etc. Estos
son tipos de datos. Una variable, por lo general, como su nombre lo indica, puede
variar su valor durante la ejecución del programa. Dependiendo del lenguaje de
programación usado, también puede cambiar el tipo de dato que almacena.

TOKEN Vs. VARIABLE

Las variables son unidades léxicas definidas por el usuario que pueden o no ser
delimitadas por los tokens los cuales suponen el tipo de datos de las variables y su
uso dentro del programa.

Por ejemplo un token puede ser una sentencia de control como un if o un for y
dentro de esta sentencia puedo utilizar paralelamente una variable para que
realice un proceso junto con el token y de un resultado.

2. DIAGRAMA DE CARRILERA Vs. DIAGRAMA DE TRANSICION O


ESTADOS.

EL DIAGRAMA DE TRANSICIÓN DE ESTADOS O DTE

Enfatiza el comportamiento dependiente del tiempo del sistema. Los principales


componentes del diagrama son los estados y las flechas, que representan los
cambios de estado. Existe una variada notación pero lo más común es representar
a los estados mediante rectángulos o mediante círculos.
Los DTE son herramientas de modelado de sistemas en tiempo real.

Los componentes de un DTE son:

* ESTADOS: comportamiento del sistema que es observable en el tiempo. Los


ELECTIVA
BASICA DE INGENIERIA II

sistemas tienen un estado inicial, pero pueden tener múltiples estados


finales (mutuamente excluyentes).
* Cambios de estados: condiciones y acciones.

Un diagrama de transición de estados puede utilizarse como una especificación de


proceso.

DIAGRAMA DE CARRILERA

Se define el Diagrama de Integración con las siguientes características:

Está constituido por tres carrileras:

• Primera carrilera: “Conjunto de Actividades o Primer Nivel de Flujo Operacional”.


Forman parte de esta carrilera: a) los elementos de entrada, b) cada una de las
actividades que conforman el proceso y c) el producto con valor agregado.

• Segunda carrilera: “Secuencia de Operaciones o Segundo Nivel de Flujo


Operacional”. Forman parte de esta carrilera todas las operaciones que tienen
lugar en cada una de las actividades ya sean a nivel manual y/o automático.

• Tercera carrilera: “Enlace al Flujo Informativo”. Forman parte de esta carrilera


pequeños textos que asocian las actividades y las operaciones de la primera y la
segunda carrilera respectivamente, al flujo informativo del proceso.

En la figura 1 se muestra la simbología que utiliza el diagrama de integración.

3. LENGUAJE ALTO NIVEL Vs. LENGUAJE BAJO NIVEL

LENGUAJE ALTO NIVEL


ELECTIVA
BASICA DE INGENIERIA II

El lenguaje de alto nivel (high-level language) es aquel que se aproxima


más al lenguaje natural humano que al lenguaje binario de las
computadoras, el que se conoce como lenguaje de bajo nivel.
Su función principal radica en que a partir de su desarrollo, existe la
posibilidad de que se pueda utilizar el mismo programa en distintas máquinas, es
decir que es independiente de un hardware determinado. La única condición es
que la PC tenga un programa conocido como traductor o compilador, que lo
traduce al lenguaje específico de cada máquina.
Y además, al utilizar palabras del lenguaje humano (por lo general el inglés) es
más práctico y fácil de manipular para el programador de manera que no corre
tantos riesgos de equivocarse como si es más factible de caer en el error con el
binario. De esta manera, el programador puede concentrarse más en el programa
en sí que en el lenguaje y, por otra parte, se reducen los tiempos de creación del
programa, incluso en caso de que tenga que hacer modificaciones, son mucho
más fáciles de hacer.

LENGUAJE DE BAJO NIVEL

Es el que proporciona poca o ninguna abstracción del microprocesador de un


ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto
nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware.

Los lenguajes de bajo nivel, también llamados lenguajes ensambladores, permiten


al programador escribir instrucciones de un programa usando abreviaturas del
inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc.
Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no
es comprensible para la computadora, ya que, no está compuesto por ceros y
unos. Para traducir las instrucciones de un programa escrito en un lenguaje
ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa
llamado ensamblador, como se muestra en la siguiente figura:

LENGUAJE DE ALTO Y BAJO NIVEL


ELECTIVA
BASICA DE INGENIERIA II

Los lenguajes más próximos a la arquitectura hardware se denominan


lenguajes de bajo nivel y los que se encuentran más cercanos a los
programadores y usuarios se denominan lenguajes de alto nivel.

Lenguajes de bajo nivel: Son lenguajes totalmente dependientes de la máquina,


es decir que el programa que se realiza con este tipo de lenguajes no se pueden
migrar o utilizar en otras maquinas.
Lenguajes de alto nivel: Son aquellos que se encuentran más cercanos al
lenguaje natural que al lenguaje máquina. Están dirigidos a solucionar problemas
mediante el uso de Estructuras Dinámicas de Datos.

4. LIBRERÍA Vs. BIBLIOTECA

LIBRERÍA
Una librería es un conjunto de recursos. Normalmente es código que contiene
funciones que son frecuentemente utilizadas y que no necesita ser modificado.
Cuando uno desarrolla aplicaciones utiliza algunas librerías. El código
correspondiente a esas librerías que se usan se añade al programa principal
cuando se "genera. Esto tiene la ventaja de que el programa sólo va a contener el
código necesario. Se utiliza para referirse a un conjunto de módulos objeto .obj / .o
(resultados de compilación) agrupados en un solo fichero que suele tener las
extensiones .lib, .dll, etc. Estos ficheros permiten tratar las colecciones de módulos
como una sola unidad, y representan una forma muy conveniente para el manejo y
desarrollo de aplicaciones grandes.

BIBLIOTECAS
Es un conjunto de subprogramas utilizados para desarrollar software. Las
bibliotecas contienen código y datos, que proporcionan servicios a programas
independientes, es decir, pasan a formar parte de éstos. Esto permite que el
código y los datos se compartan y puedan modificarse de forma modular. Algunos
programas ejecutables pueden ser a la vez programas independientes y
bibliotecas, pero la mayoría de éstas no son ejecutables.

• Bibliotecas Estáticas
• Bibliotecas Dinámicas
ELECTIVA
BASICA DE INGENIERIA II

1. PROCEDIMIENTOS O FUNCIONES Vs. SUBPROGRAMAS

PROCEDIMIENTOS
Son subprogramas, es decir, módulos que forman parte de un programa y realizan
una tarea específica. Un procedimiento puede tener sus propias variables que se
declaran en la sección del propio procedimiento. Estas se llaman variables locales.
La casilla de memoria para estas variables se crea cada vez que el procedimiento
es llamado y se borran al salir del mismo. Así, las variables locales para un
procedimiento sólo se pueden usar en el cuerpo del procedimiento y no en el
cuerpo principal del programa.
FUNCIONES
La función es una estructura autónoma similar a los módulos. La diferencia radica
en que la función se usa para devolver un solo valor de un tipo de dato simple a su
punto de referencia. La función se relaciona especificando su nombre en una
expresión, como si fuera una variable ordinaria de tipo simple. Las funciones se
dividen en estándares y definidas por el usuario.

- Estándar: Son funciones proporcionadas por cualquier lenguaje de


programación de alto nivel, y se dividen en aritméticas y alfabéticas.
- Definidas por el usuario: son funciones que puede definirlas el programador
con el propósito de ejecutar alguna función específica, y que por lo general se
usan cuando se trata de hacer algún cálculo que será requerido en varias
ocasiones en la parte principal del algoritmo.

SUBPROGRAMA
Es una porción de código dentro de un programa más grande, que realiza una
tarea específica y puede estar relativamente independiente del código restante.
El concepto de subrutina así como su forma de uso ha ido evolucionando, dando
origen a los procedimientos, las funciones (subprogramas que devuelven un valor)
y los módulos (conjunto de subprogramas relacionados). Una de sus derivaciones
ELECTIVA
BASICA DE INGENIERIA II

la representan los métodos, nombre dado a los subprogramas que permiten


el manejo de los objetos bajo el paradigma de la Programación Orientada a
Objetos.
Semejanzas entre Procedimientos y Funciones.
• Ambos son unidades de programa independientes. Los parámetros,
constantes y variables declarados en una función o procedimiento son
locales a la función o al procedimiento, solamente son accesibles dentro del
subprograma.
Diferencias entre Procedimientos y Funciones.
• Mientras que a un procedimiento se le llama mediante una instrucción de
llamada a procedimiento, a una función se la llama usando su nombre en
una expresión.
• Puesto que se debe asociar un valor al número de una función, también se
le debe asociar un tipo. Por tanto, la cabecera de una función debe incluir
un identificador de tipo que especifique el tipo del resultado. Sin embargo,
no se asocia ningún valor con el nombre de un procedimiento y, por tanto,
tampoco ningún tipo.
• Las funciones normalmente devuelven un único valor a la unidad de
programa que la llama. Los procedimientos suelen devolver más de un
valor, o pueden no devolver ninguno si solamente realizan alguna tarea,
como una operación de salida.

1. TABLA DE SIMBOLOS Vs. PALABRAS RESERVADAS

TABLA DE SIMBOLOS

Es una estructura de datos que usa el proceso de traducción de un lenguaje de


programación, por un compilador o un intérprete, donde cada símbolo en el código
fuente de un programa está asociado con información tal como la ubicación, el tipo
de datos y el ámbito de cada variable, constante o procedimiento.

Es un componente necesario de un compilador. Al declarar un identificador


(normalmente una sola vez), éste es insertado en la tabla. Cada vez que se utilice
el identificador se realizará una búsqueda en la tabla para obtener la información
asociada (el valor).
Esta estructura de datos que nos permite realizar operaciones de inserción,
búsqueda y eliminación de información en varias construcciones del lenguaje
fuente, la cual es analizada por el compilador originándose un código objeto.

PALABRAS RESERVADAS

En programación, las palabras reservadas son aquel grupo de identificadores


(palabras) que no pueden ser utilizadas por el usuario para nombrar a las
ELECTIVA
BASICA DE INGENIERIA II

variables, funciones, procedimientos, objetos y demás elementos de


programación que cree.
Generalmente esto se debe a que el propio lenguaje de programación ya
las utiliza, por esta razón, las palabras reservadas no pueden ser
empleadas como identificadores definidos por el usuario.
Cada lenguaje de programación tiene su propio grupo de palabras reservadas,
pero en general coinciden algunas de las siguientes: and, array, begin, case,
const, default, do, else, end, file, for, function, goto, if, in, label, mod, not, of, or,
repeat, return, then, to, type, until, void, while, etc.

TABLA DE SIMBOLOS Vs. PALABRAS RESERVADAS

Las palabras reservadas son identificadores propios de cada lenguaje, estos


identificadores a su vez son utilizados para la manipulación de la tabla de
símbolos utilizada en el proceso de compilación de un lenguaje.

2. ESTRUCTURAS DE DATOS O INFORMACION Vs. ESTRUCTURAS DE


COMPILACION

ESTRUCTURAS DE DATOS

En programación, una estructura de datos es una forma de organizar un conjunto


de datos elementales con el objetivo de facilitar su manipulación. Un dato
elemental es la mínima información que se tiene en un sistema.
Una estructura de datos define la organización e interrelación de éstos y un
conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones
básicas son:
• Alta, adicionar un nuevo valor a la estructura.
• Baja, borrar un valor de la estructura.
• Búsqueda, encontrar un determinado valor en la estructura para realizar
una operación con este valor, en forma secuencial o binario (siempre y
cuando los datos estén ordenados).
Otras operaciones que se pueden realizar son:
• Ordenamiento, de los elementos pertenecientes a la estructura.
• Apareo, dadas dos estructuras originar una nueva ordenada y que contenga
a las apareadas.

ESTRUCTURAS DE COMPILACION
También se la llama tabla de nombres o tabla de identificadores y tiene dos
funciones principales:

- Efectuar chequeos semánticos.


- Generación de código.
ELECTIVA
BASICA DE INGENIERIA II

Permanece sólo en tiempo de compilación, no de ejecución, excepto en


aquellos casos en que se compila con opciones de depuración.
La tabla almacena la información que en cada momento se necesita sobre
las variables del programa, información tal como: nombre, tipo, dirección de
localización, tamaño, etc. La gestión de la tabla de símbolos es muy importante, ya
que consume gran parte del tiempo de compilación. De ahí que su eficiencia sea
crítica. Aunque también sirve para guardar información referente a los tipos
creados por el usuario, tipos enumerados y, en general, a cualquier identificador
creado por el usuario

ESTRUCTURAS DE DATOS Vs. ESTRUCTURAS DE COMPILACION


Se basan en el mismo principio de ordenamiento de la información, pero la
estructura de datos o de información hace referencia al lenguaje al código fuente
que el usuario “crea” y en cambio las estructuras de compilación son las
estructuras que el compilador requiere para ejecutar su proceso y tener una
secuencia y unos datos ordenados.

Potrebbero piacerti anche