Practico-PROGRAMACION
Enviado por g400 • 9 de Noviembre de 2012 • 2.473 Palabras (10 Páginas) • 322 Visitas
LENGUAJES DE PROGRAMACIÓN
Cronología de su evolución histórica
Clasificación
Tipos de lenguajes (ventajas y desventajas)
Sintaxis y semántica
Que son y cómo funcionan los compiladores y ensambladores
Explicar qué utilidad tienen los entornos de desarrollo(en la actualidad entornos gráficos)
Definir programa fuente, programa objeto, programa ejecutable final; indicar que diferencia existe entre ellos
Investigar cual es la tendencia actual respecto a los lenguajes en uso
Los lenguajes de programación se clasifican según las características que posean y según el paradigma de conceptos que soporten.
Por su nivel:
Bajo nivel. No hay abstracciones de datos ni procesos. Ejemplos: assembler, editores hexadecimales.
Alto nivel. Permite abstraer varios aspectos que simplifican la programación. En general son algo menos eficientes que los de bajo nivel. Ejemplos, Pascal, Ada, Java, C++, Prolog, etc.
Por su jerarquización:
Primera generación. Fue el primer lenguaje.se utilizan unos y ceros para representar los cableados, que anteriormente se hacían a mano. Ej.: lenguaje maquina.
Segunda generación. se asignan nombres simbólicos para las distintas instrucciones, que internamente son combinaciones de unos y ceros. Ej.: assembler.
Tercera generación. Lenguajes de alto nivel. Son los más populares y más fáciles de usar.
Cuarta generación. Lenguajes 4GL, o de gestión de base de datos, como SQL, QueryByExample, etc.
Por el manejo de las instrucciones:
Imperativos: incluye los paradigmas imperativo y orientado a objetos.
Declarativos: incluye los paradigmas funcional y lógico.
Tipos de lenguajes de programación
Tipo Ventaja Desventaja
Imperativo
Ejemplos: FORTRAN, Algol, Pascal, C, Modula-2, Ada. Ada, C, Clipper & xBase,Cobol,Ensamblador,80x86,Euphoria,Fortran,Pascal,QuickBasic
Es tan cercano al lenguaje de la máquina que la eficiencia en la ejecución es altísima. El programador tiene que traducir la solución abstracta del problema a términos muy
primitivos, cercanos a la máquina, por lo que los programas son más "comprensibles" para la máquina que para el hombre.
Lenguajes Funcionales
Ejemplos: LISP, ML Construir funciones a partir de las ya existentes. Por lo tanto es importante conocer y comprender bien las funciones que conforman la base del lenguaje, así como las que ya fueron definidas previamente. De
esta manera se pueden ir construyendo aplicaciones cada vez más complejas. Está alejado del modelo de la máquina de von Neumann y, por lo tanto, la eficiencia de ejecución de los intérpretes de lenguajes funcionales es peor que la ejecución de los programas imperativos precompilados.
Lenguajes Lógicos o declarativos
El PROLOG surgió a principio de los 70 y es el primer lenguaje lógico. Las aplicaciones en la Inteligencia Artificial lo mantienen vivo y útil. En el caso de la programación lógica, el trabajo del programador es la buena descripción del problema en forma de hechos y reglas. A partir de ésta se pueden
encontrar muchas soluciones dependiendo de cómo se formulen las preguntas (metas),
que tienen sentido para el problema. Si el programa está bien definido, el sistema encuentra automáticamente las respuestas a las preguntas formuladas. En programación lógica, al igual que en programación funcional, el programa, en este caso los hechos y las reglas, están muy alejados del modelo Von Neumann que posee la
máquina en la que tienen que ser interpretados; por lo que la eficiencia de la ejecución es inferior a la de un programa equivalente en lenguaje imperativo.
Lenguajes Orientados a Objetos
Ejemplos: Smalltalk, C++, Eiffel, Modula-3, Ada 95 y terminando con
Java. El modelo de objetos, y los lenguajes que lo usan, parecen facilitar la construcción de sistemas o programas en forma modular. Los objetos ayudan a expresar programas en
términos de abstracciones del mundo real, lo que aumenta su comprensión. La clase ofrece cierto tipo de modularización que facilita las modificaciones al sistema. La reutilización de clases previamente probadas en distintos sistemas también es otro punto a favor. El modelo de objetos, a la hora de ser interpretado en la
arquitectura von Neumann conlleva un excesivo manejo dinámico de memoria debido a
la constante creación de objetos, así como a una carga de código fuerte causada por la constante invocación de métodos. Por lo tanto los programas en lenguajes orientados a objetos son ineficientes, en tiempo y memoria, contra los programas equivalentes en lenguajes imperativos, aunque les ganan en la comprensión de código.
Sintaxis de los lenguajes de programación
La sintaxis de un lenguaje de programación es la estructura en que se organizan los distintos elementos sintácticos, como espacios, identificadores, operadores, etc. es decir el orden que tienen unos con respecto a otros.
Una sintaxis se evalúa según varios criterios: que sea fácil de leer, de escribir, de verificar (chequear en busca de errores), facil de traducir y que carezca de ambigüedad. Esta ultima significa que un mismo código puede tener 2 o más interpretaciones o traducciones posibles, en cuyo caso no se puede decidir que alternativa elegir.
Los elementos de la sintaxis son: alfabeto, identificadores (nombre de las variables, constantes, etc.), símbolos de operadores (+,-,*,/,<,>, etc.), espacios en blanco, delimitadores y corchetes, palabras pregonadas ( palabras que se pueden omitir sin alterar el significado), palabras clave y reservadas (propias del lenguaje), comentarios y expresiones.
Semántica de los lenguajes de programación
La semántica de un lenguaje de programación se refiere al significado que adoptan las distintas sentencias, expresiones y enunciados de un programa.la semántica engloba aspectos sensibles al contexto, a diferencia de la sintaxis que considera aspectos libres de contexto.
Los principales elementos de la semántica son:
Variables: se refieren a locaciones de memoria ligadas a un nombre y a un tipo.
Valores y referencias: los valores son el estado de determinada celda o grupo de celdas de la memoria, mientras que las referencias indican la posición de esa celda en memoria. estos 2 conceptos están muy involucrados con los punteros. la mayoría
...