Compiladores, interpretadores y lenguajes de bajo, medio y alto nivel
1. República Bolivariana De Venezuela <br />Universidad Fermín Toro<br />Decanato De Ingeniería <br />Cabudare-Estado-Lara<br />Alumna: Estefhany Mendoza<br />C.I.:23.815.004<br />Prof: Yelitza Echeverrias<br />TI-52<br />1.-COMPILADOR: Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.<br />EJEMPLO:<br />2.-INTERPRETADORES: Se define como INTERPRETADORES de lenguajes de programación de alto nivel, los cuales ejecutan un programa línea por línea. El programa permanece en su forma original denominado programa fuente y el intérprete proporciona la traducción al momento de ejecutar cada una de las instrucciones. Un intérprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, está diseñado de modo que no existe independencia entre la etapa de traducción y la etapa de ejecución.<br />Un intérprete traduce cada instrucción o sentencia del programa escrito a un lenguaje máquina e inmediatamente se ejecuta. Encuentran su mayor ventaja en la interacción con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fáciles de detectar y sobre todo de corregir.<br />EJEMPLO:<br />Algunos ejemplos de lenguajes que son normalmente interpretados en vez de compilados son:<br />Perl<br />PHP<br />Java script<br />Logo<br />ASP (hasta la versión 3)<br />Python<br />Tcl<br />Ruby<br />J#<br />ASP<br />3.- LENGUAJE DE ALTO NIVEL: Un lenguaje de programación de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.<br />Ventajas<br />Genera un código más sencillo y comprensible.<br />Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.<br />Inconvenientes<br />Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.<br />Algunos requieren que la máquina cliente posea una determinada plataforma.<br />Principales lenguajes de alto nivel ALGOL Basic C++ C# Clipper COBOL Fortran FoxPro o Visual Foxpro Java Lexico Logo Object Pascal Pascal Perl PHP PL/SQL Python RPG Ruby MATLAB SISTEMA BERNAL ITM Modula-2 Lenguajes funcionales Haskell Lisp<br />4.-LENGUAJE DE MEDIO NIVEL: Suelen ser clasificados de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del lenguaje ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.<br />CARACTERISTICAS:<br />Una característica distintiva, por ejemplo, que convierte al lenguaje de programación C en un lenguaje de medio nivel y al lenguaje de programación Pascal en un lenguaje de alto nivel, es que en el primero es posible manejar las letras como si fueran números (en Pascal no), por el contrario, en Pascal es posible concatenar las cadenas de caracteres con el operador suma y copiarlas con la asignación (en C es el usuario el responsable de llamar a las funciones correspondientes).<br />Una de las características más peculiares del lenguaje de programación C es el uso de apuntadores, los cuales son muy útiles en la implementación de algoritmos como listas enlazadas, tablas hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación (como en el lenguaje de programación Java, por ejemplo) suelen ser un poco más complicados de implementar.<br />5.-LENGUAJE DE BAJO NIVEL: Un lenguaje de programación de bajo nivel es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware.<br />6.-LENGUAJE C: Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.<br />Características<br />Propiedades<br />Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.<br />Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado quot;
no llevado al extremoquot;
(permitiendo ciertas licencias de ruptura).<br />Un sistema de tipos que impide operaciones sin sentido.<br />Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.<br />Acceso a memoria de bajo nivel mediante el uso de punteros.<br />Interrupciones al procesador con uniones.<br />Un conjunto reducido de palabras clave.<br />Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.<br />Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.<br />Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable quot;
empleadoquot;
).<br />Carencias<br />Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la quot;
libgcquot;
desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.<br />Soporte para programación orientada a objetos, aunque la implementación original de C++ fue un preprocesador que traducía código fuente de C++ a C.<br />Encapsulación.<br />Funciones anidadas, aunque GCC tiene esta característica como extensión.<br />Polimorfismo en tiempo de código en forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte rudimentario para la programación genérica.<br />