Sei sulla pagina 1di 11

Universidad de insurgentes

Plantel San ngel



Informtica

Materia: Teora de Lenguajes y Compiladores

Molina Morales Hctor Isaac


Grupo: 14131




15 de julio del 2014

DEFINE LAS CARACTERSTICAS DE UN LENGUAJE
Un lenguaje de programacin es un lenguaje formal diseado para
expresar procesos que pueden ser llevados a cabo por mquinas como
las computadoras. Pueden usarse para crear programas que controlen el
comportamiento fsico y lgico de una mquina, para expresar algoritmos con
precisin, o como modo de comunicacin humana
El lenguaje de programacin tiene la capacidad de especificar, de forma precisa,
cules son los datos que debe trabajar un equipo informtico, de qu modo deben
ser conservados o transferidos dichos datos y qu instrucciones debe poner en
marcha la computadora ante ciertas circunstancia.
MENCIONA LOS COMPONENTES BSICOS DE UN LENGUAJE
Variables y vectores
Las variables podran calificarse como contenedores de datos y por ello se
diferencian segn el tipo de dato que es capaz de almacenar. En la mayora de
lenguajes de programacin se requiere especificar un tipo de variable concreto
para guardar un dato concreto. Por ejemplo, en Java, si deseamos guardar una
cadena de texto deberemos especificar que la variable es del tipo String. Por otra
parte, en lenguajes como el PHP este tipo de especificacin de variables no es
necesario. Adems, existen variables compuestas por varias variables llamadas
vectores. Un vector no es ms que un conjunto de variables consecutivas en
memoria y del mismo tipo guardadas dentro de un variable contenedor. A
continuacin, un listado con los tipos de variables y vectores ms comunes:
Variables tipo Char: Estas variables contienen un nico carcter, es decir, una
letra, un signo o un nmero.
Variables tipo Int: Contienen un nmero entero.
Variables tipo float: Contienen un nmero decimal.
Variables tipo String: Contienen cadenas de texto, o lo que es lo mismo, es un
vector con varias variables del tipo Char.

EJEMPLO DE LENGUAJE

CARACTERSTICAS DE UN EDITOR DE TEXTOS
Un editor de texto es un programa que permite crear y modificar archivos digitales
compuestos nicamente por un texto sin formato, conocidos comnmente
como archivos de texto o texto plano.
Los editores de texto son incluidos en el sistema operativo o en algn paquete de
software instalado y se usan cuando se deben crear o modificar archivos de texto
como archivos de configuracin, scripts o el cdigo fuente de algn programa.
ACTIVIDAD REALIZADA CON EL EDITOR DE TEXTOS
Crear y modificar archivos digitales compuestos nicamente por un texto sin
formato, conocidos comnmente como archivos de texto o texto plano. El
programa lee el archivo e interpreta los bytes ledos segn el cdigo de
caracteres que usa el editor. Hoy en da es comnmente de 7- u 8-bits
en ASCII o UTF-8, rara vez EBCDIC.
RELACIN ENTRE UN EDITOR DE TEXTOS Y LA PROGRAMACIN
La programacin informtica, a menudo acortada como programacin, es el
proceso de disear, codificar, depurar y mantener el cdigo fuente de programas
computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El
propsito de la programacin es crear programas que exhiban un comportamiento
deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en
varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos
especializados y lgica formal. Programar no involucra necesariamente otras
tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del
cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas
aplicaciones.
DEFINE UN LENGUAJE DE PROGRAMACIN
Un lenguaje de programacin es un lenguaje formal diseado para
expresar procesos que pueden ser llevados a cabo por mquinas como
las computadoras.
Pueden usarse para crear programas que controlen el comportamiento fsico y
lgico de una mquina, para expresar algoritmos con precisin, o como modo de
comunicacin humana.
1

Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso
por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se
mantiene el cdigo fuente de un programa informtico se le llama programacin
CLASIFICACIN DE LENGUAJES DE PROGRAMACIN
Existen diferentes clases o tipos de lenguajes de programacin:
1 El Lenguaje Mquina: es el lenguaje de programacin que entiende
directamente la computadora o mquina. Este lenguaje de programacin utiliza el
alfabeto binario, es decir, el 0 y el 1. Con estos dos nicos dgitos, conocidos
como bits, forma las cadenas binarias (combinaciones de ceros y unos) son con
las que se escriben las instrucciones que el microprocesador de la computadora
entiende nuestra peticiones. El lenguaje mquina fue el primer lenguaje de
programacin. Dejo de usarse por su gran dificultad y por la facilidad para cometer
errores.
2 Lenguajes de Programacin de Bajo Nivel: Son mucho ms fciles de utilizar
que el lenguaje mquina, pero dependen mucho de la computadora como suceda
con el lenguaje mquina. El lenguaje ensamblador fue el primer lenguaje de
programacin de bajo nivel que trato de sustituir el lenguaje mquina por otro
mucho ms parecido al de los seres humanos. El programa fuente es un conjunto
de instrucciones escrito en lenguaje ensamblador, y cuyo objeto es la traduccin a
lenguaje mquina del programa fuente. Los lenguajes de este tipo son agiles,
difciles de usar, especficos de cada procesador, si nos llevamos el programa a
otro computador ser preciso reescribir el programa desde el comienzo.
3 Lenguajes de Programacin de Alto Nivel: Este lenguaje es independientes de
la mquina, lo podemos usar en cualquier computador con muy pocas
modificaciones o sin ellas, son muy similares al lenguaje humano. Necesitan un
programa intrprete o compilador que lo traduzca uno de bajo nivel, como el
lenguaje de mquina para que la computadora pueda entenderlo. Este tipo de
lenguaje es ms fciles de aprender porque se usan palabras o comandos del
lenguaje natural, como por ejemplo: palabras en ingls. Este es el caso del BASIC,
el lenguaje de programacin ms conocido.
Existen muchos lenguajes de programacin de alto nivel con sus diferentes
versiones. Por esta razn es difcil su tipificacin, pero una clasificacin muy
extendida desde el punto de vista de su forma de trabajar y la filosofa de su
creacin es la siguiente:
Lenguajes de programacin imperativos: entre ellos tenemos el Cobol, Pascal, C y
Ada.
Lenguajes de programacin declarativos: el Lisp y el Prolog.
Lenguajes de programacin orientados a objetos: el Smalltalk y el C++.
Lenguajes de programacin orientados al problema: son aquellos lenguajes
especficos para gestin.
Lenguajes de programacin naturales: son los nuevos lenguajes que pretender
aproximar el diseo y la construccin de programas al lenguaje de las personas.
Otra clasificacin de los lenguajes de programacin de alto nivel, es teniendo en
cuenta el desarrollo de las computadoras segn sus diferentes generaciones:
Lenguajes de programacin de primera generacin: el lenguaje mquina y el
ensamblador.
Lenguajes de programacin de segunda generacin: los primeros lenguajes de
programacin de alto nivel imperativo (FROTRAN, COBOL).
Lenguajes de programacin de tercera generacin: son lenguajes de
programacin de alto nivel imperativo pero mucho ms utilizados y vigentes en la
actualidad (ALGOL 8, PL/I, PASCAL, MODULA).
Lenguajes de programacin de cuarta generacin: usados en aplicaciones de
gestin y manejo de bases de datos (NATURAL, SQL).
Lenguajes de programacin de quinta generacin: creados para la inteligencia
artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).
RELACIN ENTRE LOS LENGUAJES DE ALTO NIVEL Y EL CDIGO DE
MQUINA
Los lenguajes de programacin de computadoras de alto y de bajo nivel estn
diseados para permitir la comunicacin entre un humano y una computadora a
distintos niveles de abstraccin. Un lenguaje de muy bajo nivel requiere que un
humano proporcione instrucciones directamente al hardware de la computadora,
usando el lenguaje y la estructura de dicho hardware; en el caso de los lenguajes
de alto nivel, los humanos trabajan con herramientas lgicas complejas y
abstractas para escribir instrucciones que un programa determinado debe traducir
para que la computadora comprenda. Generalmente es ms fcil para los
humanos usar estas herramientas.
PROCESAMIENTO DE PROGRAMAS
La programacin es ms que solamente escribir cdigo. El software tiene su ciclo
de vida. Nace, crece, madura y finalmente muere, solamente para ser
reemplazado por un producto nuevo. El entendimiento del ciclo de vida de un
programa es importante, ya que, como programador, se pasar solamente poco
tiempo en escribir cdigo. La mayora de las veces la mayor parte del tiempo se
invierte al modificar y revisar cdigo existente. Un cdigo debe ser documentado,
se le debe dar mantenimiento, debe ser mejorado y vendido.
Los principales pasos que se deben seguir al elaborar un programa son:
Requerimientos: Los programas empiezan cuando alguien tiene la idea de hacer
algo y comienza a implementarlo. El documento con los requerimientos del
sistema describen, en trminos generales, qu es lo que se quiere hacer.
Especificacin del programa: La especificacin es una breve descripcin de qu
es lo que el programa hace. En un principio, una especificacin preliminar describe
qu es lo que va a hacer el programa. Despus, mientras el programa se va
refinando, de la misma manera se va refinando la especificacin del mismo.
Diseo del cdigo: El programador tiene que llevar a cabo un diseo del cdigo a
implementar. En l se deben incluir los algoritmos utilizados, las definiciones de
los mdulos a utilizar, archivos utilizados y estructuras de datos usadas en el
programa. Es aqu en donde se desarrolla el pseudocdigo del programa. El uso
de diagramas de flujo tambin nos permitir obtener una abstraccin sobre el
problema, tanto en entradas, salidas, flujo y procesamiento de la informacin.
Codificacin: El siguiente paso es empezar a escribir el programa. Este primer
paso involucra primero escribir un prototipo y despus irlo puliendo para crear el
programa final.
Pruebas: El programador debe disear un plan de pruebas para posteriormente
utilizarlo para probar su programa. Cuando es posible, debe existir un equipo de
pruebas, diferente del equipo de programadores.
Debugging: Desafortunadamente, pocos son los programas que funcionan a la
primera. Los programas deben ser corregidos y probados nuevamente.
Release: El programa es empaquetado, documentado y mandado al mundo a ser
usado.
Mantenimiento: Los programas rara vez, o nunca son perfectos. Los errores o
bugs se encontrarn y necesitarn ser corregidos. Esta etapa es la etapa de
mantenimiento de la programacin.
Revisin y mejora: Despus de que un programa ha sido usado, los usuarios
querrn realizarle algn cambio al funcionamiento del programa, tal como alguna
nueva funcionalidad o un cambio
DESCRIBE LA COMPILACIN DE UN PROGRAMA
Un compilador es un programa que permite traducir el cdigo fuente de un
programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior
(tpicamente lenguaje de mquina). De esta manera un programador puede
disear un programa en un lenguaje mucho ms cercano a cmo piensa un ser
humano, para luego compilarlo a un programa ms manejable por una
computadora.
TIPOS DE COMPILACIN
Esta taxonoma de los tipos de compiladores no es excluyente, por lo que puede
haber compiladores que se adscriban a varias categoras:
Compiladores cruzados: generan cdigo para un sistema distinto del que estn
funcionando.
Compiladores optimizadores: realizan cambios en el cdigo para mejorar su
eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el cdigo mquina a partir de una
nica lectura del cdigo fuente.
Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces
antes de poder producir el cdigo mquina.
Compiladores JIT (Just In Time): forman parte de un intrprete y compilan partes
del cdigo segn se necesitan.
FASES DE UN COMPILADOR
Las fases de un compilador son:
Anlisis Lxico: Esta fase se encarga de verificar si todas las cadenas pertenecen
o no al lenguaje. Es decir realiza un anlisis smbolo por smbolo indicando el
token por cada uno de los elementos reconocidos o el error en caso de no
reconocer. Este anlisis no logra detectar muchos errores por su caracterstica.
Ejemplo:
Total=valor*5
Luego del anlisis lxico:
Id = id * nm.

Anlisis Sintctico: En esta fase se analiza la estructura de las expresiones en
base a gramticas. Aqu ya se puede determinar si una estructura por ejemplo una
expresin matemtica mal formada. El anlisis que se realiza es jerarquice es
decir en base a arboles de derivacin que se obtienen de las mismas gramticas.
Ejemplo: position:=initial + rate*60

Anlisis Semntico: Este anlisis es ms difcil de formalizar, determina el tipo de
los resultados intermedios, comprobar que los argumentos que tienen un operador
pertenecen al conjunto de operadores posible, y si son compatibles entre s.


Generacin de Cdigo Intermedio: El cdigo intermedio es una representacin en
base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de
optimizacin de cdigo.
a=b+c
1: + b c T1
2: = a T1
Optimizacin de Cdigo: Consiste en realizar una mejora en el cdigo intermedio,
para reducir el nmero de lneas y hacer que la ejecucin sea ms rpida
a=b+c
1: + b c a
Generacin de Cdigo: Llegamos a la generacin de cdigo ensamblador o cdigo
mquina del procesador que nos interese por ejemplo:
a: = b + c
LOAD B
ADD C
STORE A
FUNCIONAMIENTO DE UN INTRPRETE
El funcionamiento de un intrprete se caracteriza por traducir y ejecutar, de una en
una, las instrucciones del cdigo fuente de un programa, pero, sin generar como
salida cdigo objeto. El proceso que realiza un intrprete es el siguiente: lee la
primera instruccin del cdigo fuente, la traduce a cdigo objeto y la ejecuta; a
continuacin, hace lo mismo con la segunda instruccin; y as sucesivamente,
hasta llegar a la ltima instruccin del programa, siempre y cuando, no se
produzca ningn error que detenga el proceso.
ETAPA INICIAL DE UN COMPILADOR
El compilador estara dividido en dos secciones, con la representacin intermedia
como el medio de comunicacin entre ellas: Esta estructura es importante por la
portabilidad del compilador, en la que el compilador est diseado con un enfoque
hacia la modificacin, ya sea del cdigo fuente o del cdigo objetivo.

Potrebbero piacerti anche