martes, 4 de abril de 2017

TRABAJO 1.lenguajes de programacion

UNIVERSIDAD NACIONAL DEL ALTIPLANO PUNO



                                            INGENIERIA DE SISTEMAS

                             AUTOR: ALEX ELOY HUARICCALLO MAMANI 

                      CURSO:  LENGUAJES Y METODOLOGIAS DE PROGRAMACION

                                                                AÑO:  2017
                         

                       SEMESTRE : II





INDICE:


1..............Definicion de lenguaje de alto nivel
2..............ventajas y desventajas
3..............principales lenguajes de alto nivel
4..............definicion de los principales lenguajes de alto nivel
5..............definicion de lenguajes de bajo nivel
6..............veneficios de untilizar lenguajes de bajo nivel
7..............ventajas y desventajas de bajo nivel  



Definición de Lenguaje de Alto Nivel

¿Qué es un lenguaje de alto nivel?

Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: caseifforwhile, etc. para construir con ellas instrucciones como:if( numero > 0 ) printf( "El número es positivo" )

que traducido al castellano viene a decir que: si numero es mayor que cero, entonces, escribir por pantalla el mensaje: "El número es positivo".

Ésta es la razón por la que a estos lenguajes se les considera de alto nivel, porque se pueden utilizar palabras de muy fácil comprensión para el programador. En contraposición, los 
lenguajes de bajo nivelson aquellos que están más cerca del "entendimiento" de la máquina. Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal, etc.

Otra carácterística importante de los lenguajes de alto nivel es que, para la mayoría de las instrucciones de estos lenguajes, se necesitarían varias instrucciones en un lenguaje ensamblador para indicar lo mismo. De igual forma que, la mayoría de las instrucciones de un lenguaje ensamblador, también agrupa a varias instrucciones de un 
lenguaje máquina.

DEFINICION:
Lenguaje de programación de alto nivel es un tipo de lenguaje de programaciónque permite al programador escribir programas (algoritmos) que son más o menos independientes de un tipo particular de computadora (del hardware). Estos lenguajes son considerados de alto nivel porque son más parecidos al lenguaje natural humano y más lejanos al lenguaje de las máquinas. En otras palabras, utilizan una fuerte abstracción de los detalles de la computadora.

En contraste, los lenguajes ensamblador (lenguajes de bajo nivel) son considerados lenguajes de bajo nivel porque están muy cerca al lenguaje que manejan las máquinas.

La principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel es que son más fáciles de leer, escribir y mantener por humanos. Al final, los programas escritos en alto nivel deben ser traducidos en un lenguaje máquina específico empleando un compilador o un intérprete. De esta manera pueden ser ejecutados por una máquina específica.

El primer lenguaje de programación de alto nivel diseñado para computadoras fue Plankalkül (1948), creado por Konrad Zuse (1910-1995). De todas maneras no fue implementado en su momento.

En tanto el primer lenguaje de programación de alto nivel ampliamente distribuido fue Fortran, un desarrollo de IBM que apareció por primera vez en 1957. En tanto el lenguaje Algol, definido en 1958 y 1960, introdujo nuevos conceptos como recursión, funciones anidadas, muchos conceptos deprogramación estructurada, etc. En esa época Cobol también introdujo registros y Lisp introdujo abstracción lambda.

En inglés: high-level programming language.



Ventajas y desventajas de los lenguajes de programación de alto nivel

Ventajas

- Resultan en un código fuente más fácil de leer, escribir y mantener por los humanos. En general, permite emplear menos líneas de código en comparación con lenguaje máquina.

- Permiten escribir un código válido ejecutable en distintos tipos de máquinas y sistemas operativos.

- Emplean paradigmas de programación.


Desventajas

- Son más lentos de ejecutar, siendo el código máquina más eficiente. De todas maneras esto depende del diseño del compilador para lenguajes de alto nivel: un buen diseño produce más eficiencia.

- En algunos casos el programa resultante requiere una determinada plataforma para ejecutarse.
Modos de ejecución de los lenguajes de programación de alto nivel

Existen tres modos de ejecución de estos lenguajes:

Interpretado: cuando un código en un lenguaje es interpretado, su sintaxis es leída y luego ejecutada directamente, sin fase de compilación. Un programa llamado intérprete lee cada instrucción del programa, siguiendo el flujo de programa, y decide qué hacer y lo hace. Los intérpretes son la forma más simple de implementación del comportamiento de un lenguaje, comparado con las otras dos variantes listadas aquí.

Compilado: cuando un código en un lenguaje es compilado, su sintaxis es primero transformada a una forma ejecutable antes de correrlo. Existen dos tipos de compilación: generación de código máquina (compilador que pasa del código fuente directamente al código máquina) y representación intermedia (se compila una representación que puede ser optimizada o guardada para ejecutar luego sin la necesidad de releer el código fuente. Cuando esta representación se guardada puede ser en forma de bytecode).

- Traducción fuente a fuente (Source-to-Source Translated o Trans-compiling): el código escrito en un lenguaje puede ser traducido a términos de un lenguajes de programación para los cuales los compiladores de código nativo ya están ampliamente disponibles. Los lenguajes JavaScript y C son usuales para estas traducciones. Por ejemplo, CoffeeScript, Chicken Scheme y Eiffel.
Principales lenguajes de nivel alto

• VB.NET
• Ada
 • ALGOL
• BASIC
• C Sharp
• FORTRAN
• Java
• Lisp
• Modula-2
• Pascal
• Perl
• PHP
• PL/1
• PL/SQL
• Python
• Ruby
• Matlab


FORTRAN 

Abreviatura de Fórmula Translator (traductor de fórmulas), fue definido alrededor del año 1954, y disponible para el público en 1957 en los Estados Unidos por la compañía IBM. [1] Es el más antiguo de los lenguajes de alto nivel, pues antes de su aparición todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina. Es un lenguaje especializado en aplicaciones técnicas y científicas, caracterizándose por su potencia en los cálculos matemáticos, pero estando limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes.




COBOL 

Es el lenguaje más usado en las aplicaciones de gestión, creado en 1960 por un comité denominado CODASYL, patrocinado por el Departamento de Defensa de los Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales como expresa su nombre (COmmon Business Oriented Language).




PL/1

 Fue creado a comienzos de los años 60 por IBM para ser usado en sus equipos del sistema 360. El PL/I (Programming Language 1) se desarrolló inspirándose en los lenguajes ALGOL, COBOL y FORTRAN, tomando las mejores características de los anteriores y añadiendo algunas nuevas, con el objetivo de obtener un lenguaje lo más general posible, útil para aplicaciones técnico-científicas, comerciales, de proceso de textos, de [[bases de datos}} y de programación de sistemas.



BASIC 

Fue diseñado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College en 1964[2] con el objetivo principal de conseguir un lenguaje fácil de aprender para los principiantes, como se indica en su nombre Beginner’s All-purpose Symbolic Instruction Code (Código de instrucción simbólico de propósito general para principiantes).





PASCAL 

Fue creado por el matemático suizo Niklaus Wirth en 1970, basándose en el lenguaje AL-GOL, en cuyo diseño había participado en los años 60. Su nombre proviene del filósofo y matemático francés del siglo xvii Blaise Pascal, que inventó la primera máquina de tipo mecánico para sumar.




C/C++ 

Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los laboratorios Bell Telephone, Ken Thompson. Estos habían diseñado con anterioridad el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue la de conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la máquina con el cual escribir su sistema UNIX.




ADA 

Es el último intento de obtener un único lenguaje para todo tipo de aplicaciones e incluye los últimos avances en técnicas de programación. Su diseño fue encargado por el Departamento de Defensa de los Estados Unidos a la empresa Honeywell-Bull después de una selección rigurosa entre varias propuestas realizadas sobre una serie de requerimientos del lenguaje y de haber evaluado negativamente veintitrés lenguajes existentes. De éstos se seleccionaron como base para la creación del nuevo lenguaje el PASCAL, el ALGOL y el PL/I. La estandarización del lenguaje se publicó en 1983 con el nombre de ADA en honor de la considerada primera programadora de la historia Augusta Ada Byron, condesa de Lovelace.



Lenguajes de bajo nivel



Un lenguaje de programación de características bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de la computadora que lo soporta. El uso de la palabra bajo en su denominación no implica que el lenguaje sea inferior a un lenguaje de alto nivel, si no que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los Sistemas Operativos, de aplicaciones en tiempo real o controladores de dispositivos.
Complejidad vs Dificultad
Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina.


Beneficios de trabajar a bajo nivel 


Durante el proceso de aprendizaje de la programaci´on, hemos detectado una serie de aspectos que resultan dif´ıciles de asimilar por parte de los alumnos. Consideremos por ejemplo una instrucci´on simple de acumulaci´on en un lenguaje de alto nivel, como Java: i=i+2. Un alumno sin experiencia que es enfrentado por primera vez a este tipo de instrucci´on, sufre una enorme confusi´on, a ra´ız del conocimiento que tiene de las igualdades matem´aticas. Por el contrario, en ensamblador, la variable i se manipula en forma m´as concreta, como una celda de la memoria. Esta celda cuenta con una direcci´on asociada que se utiliza para su lectura o escritura. As´ı, para llevar a cabo la acumulaci´on es necesario efectuar la suma del contenido de la celda de memoria con 2, para luego guardar el resultado en la misma celda de memoria. Lo concreto de esta manipulaci´on logra un mejor entendimiento por parte del alumno. 


Ventajas y Desventajas del Lenguaje de Bajo Nivel


En general se utiliza este tipo de lenguaje para programar controladores (drivers).
La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o ellenguaje simbólico tiene ciertas ventajas:
  • Mayor adaptación al equipo.
  • Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
  • Imposibilidad de escribir código independiente de la máquina.
  • Mayor dificultad en la programación y en la comprensión de los programas.
  • El programador debe conocer más de un centenar de instrucciones.
  • Es necesario conocer en detalle la arquitectura de la máquina.
Lenguaje máquina: ƒ
Instrucciones reconocidas por los circuitos del procesador. ƒ
Se codifican en binario. ƒ
Los datos se referencian por su posición de memoria.

Lenguaje ensamblador: ƒ
Codificación mnemotécnica del lenguaje máquina. ƒ
Necesita un traductor. ƒ
Se pueden utilizar etiquetas en vez de posiciones de memoria.



REFERENCIAS:

http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/4/informatica_4.pdf
http://www.carlospes.com/minidiccionario/lenguaje_de_alto_nivel.php
http://www.alegsa.com.ar/Dic/lenguaje_de_programacion_de_alto_nivel.php
http://itm201511.webnode.es/archivos-del-sistema/lenguajes/lenguajes-de-bajo-nivel/
https://tulenguaje.wordpress.com/2009/02/11/ventajas-y-desventajas-del-lenguaje-de-bajo-nivel/
https://compinformatidf.files.wordpress.com/2011/03/cap7-lengprogram-cc101.pdf
http://ditec.um.es/~jpujante/documentos/Tema5-slides.pdf
https://www.virtuniversidad.com/greenstone/collect/informatica/archives/HASH0152.dir/doc.pdf
https://users.dcc.uchile.cl/~mmarin/revista-sccc/sccc-web/Vol5/edu2.pdf
https://www.youtube.com/watch?v=EwMyHCMpr_c
http://algoritmosfisiunsm.blogspot.pe/2014/09/lenguajes-de-bajo-nivel-y-lenguajes-de.html





1 comentario:

  1. muy buen contenido, pero falta estructurar un poco mas el aspecto monográfico

    ResponderEliminar