martes, 14 de febrero de 2012

Taller 4: Lenguajes de Programación

Actividad Previa:
Investigar los términos:
  • Lenguaje, Comunicación, Medio
  • Lenguaje de Programación, Traductores.
  • Generaciones del Software.
Instrucciones:
Realice la actividad dependiendo del número de equipo que le corresponde.
Lea el siguiente material en su totalidad
Trabaje en equipos (máximo 3 integrantes)

Actividad:
  1. Realice un crucigrama con las palabras claves del material leído.
  2. Realice un cuestionario de preguntas de completación.
  3. Realice un cuestionario de preguntas de selección simple.

Definición de Lenguajes Algorítmicos

 Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.
La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera:
bola2
Lenguaje Natural.
bola2
Lenguaje de Diagrama de Flujo.
bola2
Lenguaje Natural de Programación.
bola2
Lenguaje de Programación de Algoritmos.
bolazul.gif (334 bytes)   Lenguaje Natural
        Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce  como lenguaje  jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo.
bolazul.gif (334 bytes)   Lenguaje de Diagrama de Flujo
        Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.
bolazul.gif (334 bytes)   Lenguaje Natural de Programación
        Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.
Tiene las siguientes características:
gbol1302
Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).
gbol1302
Son precisos y bien definidos.
gbol1302
Utilizan términos familiares al sentido común.
gbol1302
Elimina instrucciones innecesarias.
bolazul.gif (334 bytes)   Lenguaje de Programación de Algoritmos
            Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.
bolazul.gif (334 bytes)   Lenguaje de Programación:
        Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
        Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su capacidad de manejo de niveles internos de la máquina.
Los principales tipos de lenguajes utilizados son tres :
bola2
Lenguaje Máquina.
bola2
Lenguaje de bajo Nivel (ensamblador).
bola2
Lenguajes de Alto Nivel.

flecroja.gif (101 bytes)   Lenguaje Máquina
        Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario.
        Las instrucciones en lenguaje máquina dependen del hardware de la computadora y, por tanto, diferirán de una computadora a otra.
Ventajas del Lenguaje Máquina
bolazul.gif (334 bytes)   Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.
Desventajas del Lenguaje Máquina
bolazul
Dificultad y lentitud en la codificación.
bolazul
Poca fiabilidad.
bolazul
Gran dificultad para verificar y poner a punto los programas.
bolazul
Los programas solo son ejecutables en el mismo procesador (CPU).
       En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes máquinas.

flecroja.gif (101 bytes)Lenguajes de Bajo Nivel
        Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés: ADD, SUB, DIV, etc.; en español: SUM, RES, DIV, etc.
Una instrucción típica de suma sería:
ADD M, N, P
        Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P". Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina.
0110 1001 1010 1011
        Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.
        El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora.
Ventajas del lenguaje ensamblador frente al lenguaje máquina
bolazul.gif (334 bytes)   Mayor facilidad de codificación y, en general, su velocidad de cálculo.
Desventajas del lenguaje ensamblador
bolazul
Dependencia total de la máquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh.
 bolazul
La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina.
         Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos.

flecroja.gif (101 bytes)   Lenguajes de Alto Nivel
        Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.
Ventajas de los lenguajes de alto nivel
bolazul
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.
bolazul
La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
bolazul
Las modificaciones y puestas a punto de los programas son más fáciles.
bolazul
Reducción del coste de los programas.
bolazul
Transportabilidad.
Desventajas de los lenguajes de alto nivel
bolazul
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo.
bolazul
No se aprovechan los recursos internos de la máquina que se explotan mucho mejor en lenguajes máquina y ensambladores.
bolazul
Aumento de la ocupación de memoria.
bolazul
El tiempo de ejecución de los programas es mucho mayor.
 Para una mejor compresión de este tema se definirá el concepto de programa, por ser este un término muy utilizado en el diseño estructurado de algoritmos.
flecroja.gif (101 bytes)Programa:     Es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos para resolver un problema.

 

Concepto de lenguaje de programación.

Es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos símbolos que se usan para expresar programas. Constan de un léxico, una sintaxis y una semántica.
¿Qué conoces tú por léxico, sintaxis y semántica?
Léxico: Conjunto de símbolos permitidos o vocabulario
Sintaxis: Reglas que indican cómo realizar las construcciones del lenguaje
Semántica: Reglas que permiten determinar el significado de cualquier construcción del lenguaje.
Tipos de lenguajes: Atendiendo al número de instrucciones necesarias para realizar una tarea específica podemos clasificar los lenguajes informáticos en dos grandes bloques:

  • bajo nivel
  • alto nivel


Lenguaje de bajo nivel
Es el tipo de lenguaje que cualquier computadora es capaz de entender. Se dice que los programas escritos en forma de ceros y unos están en lenguaje de máquina, porque esa es la versión del programa que la computadora realmente lee y sigue.

Lenguajes de alto nivel
Son lenguajes de programación que se asemejan a las lenguas humanas usando palabras y frases fáciles de entender.
· En un lenguaje de bajo nivel cada instrucción corresponde a una acción ejecutable por el ordenador, mientras que en los lenguajes de alto nivel una instrucción suele corresponder a varias acciones.
· Características de los lenguajes de alto nivel:
Son independientes de la arquitectura física de la computadora. Permiten usar los mismos programas en computadoras de diferentes arquitecturas (portabilidad), y no es necesario conocer el hardware específico de la máquina. La ejecución de un programa en lenguaje de alto nivel, requiere de una traducción del mismo al lenguaje de la computadora donde va a ser ejecutado. Una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias instrucciones en lenguaje entendible por el computador. Utilizan notaciones cercanas a las usadas por las personas en un determinado ámbito. Se suelen incluir instrucciones potentes de uso frecuente que son ofrecidas por el lenguaje de programación.


Generaciones de Lenguajes


1. Lenguaje de máquina (Primera Generación)
Es el lenguaje que la computadora entiende, su estructura está totalmente adaptada a los circuitos de la máquina y la programación es tediosa porque los datos se representan por ceros y unos. Es de bajo nivel. Es un conjunto de instrucciones codificadas en binario que son capaces de relacionarse directamente con los registros y circuitería del microprocesador de la computadora y que resulta directamente ejecutable por éste, sin necesidad de otros programas intermediarios. Los datos se referencian por medio de las direcciones de memoria donde se encuentran y las instrucciones realizan operaciones simples. Estos lenguajes están íntimamente ligados a la CPU y por eso no son transferibles. (baja portabilidad). Para los programadores es posible escribir programas directamente en lenguaje de máquina, pero las instrucciones son difíciles de recordar y los programas resultan largos y laboriosos de escribir y también de corregir y depurar.


2. Lenguaje ensamblador (Segunda Generación)
Es otro lenguaje de programación de bajo nivel, pero simbólico porque las instrucciones se construyen usando códigos de tipo mnemotécnico, lo cual facilita la escritura y depuración de los programas pero no los acorta puesto que para cada acción se necesita una instrucción. El programa ensamblador va traduciendo línea a línea a la vez que comprueba la existencia de errores. Si localiza alguno da un mensaje de error. Algunas características que lo diferencian del lenguaje de máquina son que permite el uso de comentarios entre las líneas de instrucciones; en lugar de direcciones binarias usa identificadores como total, x, y, etc. Y los códigos de operación se representan por mnemotécnica siempre tienen la desventaja de repertorio reducido de instrucciones, rígido formato para las instrucciones, baja portabilidad y fuerte dependencia del hardware. Tiene la ventaja del uso óptimo de los recursos hardware, permitiendo la obtención de un código muy eficiente. Ejemplo de algunos códigos mnemónicos son: STO para guardar un dato, LOA para cargar algo en el acumulador, ADD para adicionar un dato, INP para leer un dato, STO para guardar información, MOV para mover un dato y ponerlo en un registro, END para terminar el programa, etc. Con la tercera generación avanzamos a los lenguajes de alto nivel, muchos de los cuales se consideran exportables. Esto es, pueden correr en más de un tipo de computadoras, se les puede exportar de una máquina a otra.


3. Lenguaje de procedimientos (Tercera Generación)
Son lenguajes de alto nivel similares al habla humana pero requieren cierta capacitación para su uso.
Ventajas:
a. Independencia de la arquitectura física de la computadora (portabilidad), esto significa que un mismo lenguaje puede funcionar (al menos en teoría) en distintos computadores, por lo que tanto el lenguaje como los programas escritos con él serán transportables de un computador a otro. En la práctica, esta característica resulta limitada por la gran diversidad de versiones y dialectos que se constituyen para cada lenguaje.
b. una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias instrucciones en lenguaje máquina. Se llaman de procedimientos porque están diseñados para expresar la lógica capaz de resolver problemas generales. Entre estos tenemos: Basic, Pascal, Cobol, C, Fortran
Para que el lenguaje de procedimientos pueda funcionar debe traducirse a lenguaje de máquina a fin de que la computadora lo entienda. Para ello se han de usar programas traductores que realicen dicho proceso. Tienen la capacidad de soportar programación estructurada.


4. Lenguajes orientados a problemas (4GL)
Resultan más eficaces para la resolución de un tipo de problemas a costa de una menor eficiencia para otros. Requieren poca capacitación especial de parte del usuario Son considerados de muy alto nivel Diseñados para resolver problemas específicos. Incluye: lenguajes de consulta y generador de aplicaciones, Lenguajes de consulta: Permiten a no programadores usar ciertos comandos de fácil comprensión para la búsqueda y generación de reportes a partir de una base de datos. Generador de aplicaciones: Quiere decir que cuando se diseña uno de estos lenguajes, se tiene en cuenta que su finalidad es la resolución de problemas, prescindiendo de la arquitectura del computador. Contiene varios módulos que han sido preprogramados para cumplir varias tareas.


5. Lenguajes naturales
Lenguajes orientados a aplicaciones en inteligencia artificial, como lisp y prolog. Dentro de este campo destacan las aplicaciones en sistemas expertos, juegos, visión artificial (Jurasic Park) y robótica. Lisp es un lenguaje para procesamiento de listas y manipulación de símbolos. Prolog es un lenguaje basado en la lógica, para aplicaciones de bases de datos e Inteligencia Artificial.
Podemos decir entonces, que los lenguajes de alto nivel, tienen las ventajas de mayor legibilidad de los programas, portabilidad, facilidad de aprendizaje y facilidad de modificación.

No hay comentarios:

Publicar un comentario