lenguajes de programación
DESCRIPTION
Los tipos de lenguajes de ProgramacionTRANSCRIPT
UNIVERSIDAD NACIONAL PEDRO RUÍZ GALLO
FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS
ESCULA DE INGENIERÍA DE COMPUTACIÓN E INFORMÁTICA
“LENGUAJES DE PROGRAMACION”
DOCENTE:
Ing. Luis Reyes Lescano.
PRESENTADO POR:
Custodio Garnique Roberto.
Diaz Nuñez Hanks.
Larrea Dupis Carlo.
Zuñe Salazar Giancarlos.
LAMBAYEQUE – PERÚ
2014
¿QUE ES UN LENGUAJE DE PROGRAMACION?
Aquí tenemos algunas definiciones:
Un lenguaje de programación consiste en un conjunto de órdenes y
comandos que describen el proceso deseado. Cada lenguaje tiene
instrucciones y enunciados verbales propios, que se combinan para
formar los programas de cómputo.
Un lenguaje de programación es un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el significado de
sus elementos y expresiones y es utilizado para controlar el
comportamiento físico y lógico de una máquina.
Un lenguaje de programación permite especificar de manera precisa
sobre qué datos debe operar una computadora, como estos datos
deben ser almacenados o transmitidos y que acciones debe tomar bajo
una variada gama de circunstancias.
Todo esto, a través de un lenguaje que intenta estar relativamente
próximo al lenguaje humano o natural, tal como sucede con el lenguaje
léxico.
Los lenguajes de programación no son aplicaciones, sino herramientas
que permiten construir y adecuar aplicaciones.
El desarrollo de Lenguajes de Programación adecuados permite el uso
óptimo de los recursos de hardware con que se cuenta.
EVOLUCIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN
Los lenguajes de programación han pasado por 4 diferentes generaciones en
las que han evolucionado notablemente. Las 2 primeras son llamadas de bajo
nivel, porque son dependientes de la máquina, están diseñados para
ejecutarse en una determinada computadora; y las 2 más recientes, las de
alto nivel, son independientes de la máquina y se pueden utilizar en una
variedad de computadoras.
Primera Generación: Lenguaje de Maquina
Segunda Generación: Lenguajes Simbólicos
Tercera Generación: Lenguajes de Alto Nivel
Cuarta Generación: Programación Orientada a Objetos
Quinta Generación: Lenguajes de Inteligencia Artificial
Primera Generación:
Empieza en los años 1940-1950. Consiste en un sistema de códigos
directamente interpretable por un circuito micro programable, compuesto por
un conjunto de instrucciones que determinan acciones a ser tomadas por la
máquina. Son sistemas digitales, lo que significa que trabajan con dos únicos
niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero,
0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Todas
las instrucciones y mandatos se escribían valiéndose de cadenas de estos
dígitos.
Segunda Generación:
El Lenguaje Simbólico, constituye la representación más directa del código
máquina específico para cada arquitectura de computadoras legible por un
programador. Fue usado principalmente en los inicios del desarrollo de
software, cuando aún no se contaba con los potentes lenguajes de alto nivel.
Un programa escrito en lenguaje Simbólico consiste en una serie de
instrucciones que corresponden al flujo de órdenes ejecutables que pueden
ser cargadas en la memoria de un sistema basado en microprocesador. Salen
al mercado a fines de los años ‘50’.
Tercera Generación:
Estos lenguajes, Estos son más fáciles de aprender y usar que los lenguajes
máquina y el lenguaje Simbólico, pues su similitud con la comunicación y
comprensión humana cotidiana es mayor. Se crean enunciados tales como,
Print, Total sales, Read normal Pay etc. Aunque son más fáciles de
programar, no son tan eficientes en términos de rapidez operacional y
memoria. Entre ellos se encuentran C, Fortran, Smalltalk, Ada, C++, C#,
Cobol, Delphi, Java, etc.
Cuarta Generación:
Su característica distintiva es el énfasis en especificar qué es lo que se debe
hacer, en vez de como ejecutar una tarea. Las especificaciones de los
programas se desarrollan a un más alto nivel que en los lenguajes de la
generación anterior. La característica distintiva es ajena a los procedimientos,
el programador no tiene que especificar cada paso para terminar una tarea o
procesamiento. Son lenguajes que se relacionan menos con procedimientos y
que son aún más parecidos al inglés.
Quinta generación:
Se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el
fracaso del proyecto japonés de la quinta generación el nombre ha caído en
desuso.
Clasificación de los lenguajes de
programación
1- Según el nivel de abstracción
a. Lenguaje de máquina y de bajo nivel
Los lenguajes de maquina están escritos en códigos (código
maquina) directamente inteligibles por la maquina
(computadora), siendo sus instrucciones cadenas binarias (0 y
1). “Lenguaje de maquina” hace referencia al lenguaje específico
de una computadora, mientras que “código maquina” hace
referencia al modo en que se escriben los diferentes lenguajes
de máquina.
Los lenguajes de bajo nivel son lenguajes de programación que
se acercan al funcionamiento de una computadora.
Los lenguajes de más bajo nivel son los lenguajes máquina. A
este nivel le sigue el lenguaje ensamblador, ya que al programar
en ensamblador se trabajan con los registros de memoria de la
computadora de forma directa.
La programación en un lenguaje de bajo nivel tiene como
ventajas una mayor adaptación al equipo, además de la
posibilidad de obtener la máxima velocidad con el mínimo uso de
memoria.
Sin embargo tiene importantes inconvenientes, como la
imposibilidad de escribir código independiente de la máquina y
la mayor dificultad en la programación y en comprensión de los
programas.
b. Lenguaje de medio nivel
Minoritariamente en algunos textos se diferencias algunos
lenguajes como de medio nivel, como el lenguaje C, ya que
tienen ciertas características que los acercan a los lenguajes de
bajo nivel, como gestión de punteros de memoria y registros,
pero con sintaxis, vocabulario y gramática de alto nivel.
c. Lenguaje de alto nivel y de muy alto nivel
Los lenguajes de programación de alto nivel se caracterizan por
expresar los algoritmos de una manera adecuada a la capacidad
cognitiva humana, en lugar de estar orientados a su ejecución en
las máquinas.
Los lenguajes de alto y bajo nivel requieren de conocimientos
específicos de programación y del lenguaje concreto
(vocabulario, gramática y sintaxis) para realizar las secuencias
de instrucciones lógicas.
Los lenguajes de muy alto nivel se crearon para que el usuario
común pudiese solucionar ciertos problemas sencillos de
procedimiento de datos de una manera más fácil y rápida.
2- Según su forma de ejecución
Los procesadores usados en las computadoras son capaces de
entender y actuar según lo indican programas escritos en un
lenguaje fijo para cada arquitectura, llamado lenguaje de máquina.
Todo programa escrito en un lenguaje de alto nivel puede ser
ejecutado de dos maneras.
a. Lenguajes compilados
Antes de poder utilizarse el programa debe utilizarse un
traductor llamado “compilador” que se encarga de traducir
(“compilar”) el programa original (“código fuente”) al programa
equivalente escrito en lenguaje de maquina o ensamblador
(“binario”). Los binarios son los programas ejecutables y los
únicos necesarios para el funcionamiento del programa.
b. Lenguajes interpretados
Cada vez que se usa el programa debe utilizarse un traductor
llamado “interprete” que se encarga de traducir (“interpretar”)
las instrucciones del programa original (“código fuente”) a
código maquina según van siendo utilizados. Para el
funcionamiento del programa siempre es necesario disponer del
código original y del intérprete.
3- Según el paradigma de programación
Un paradigma de programación representa un enfoque particular o
filosofía para la construcción del software. Si bien puede
seleccionarse la forma pura de estos paradigmas a la hora de
programar, en la práctica es habitual que se mezclen, dando lugar a
la programación multiparadigma.
a. Algorítmico, imperativo o por procedimientos
El más común y está representado, por ejemplo, por C o por
BASIC.
Describe la programación en términos del estado del programa y
sentencias que cambian dicho estado.
Los programas imperativos son un conjunto de instrucciones que
le indican al computador como realizar una tarea.
La implementación de hardware de la mayoría de computadoras
es imperativa ya que el hardware está diseñado para ejecutar
código de máquina que es imperativo.
b. Orientada a objetos
Cada vez más utilizado, sobre todo en combinación con el
imperativo. De hecho los lenguajes orientados a objetos
permiten la programación imperativa. Algunos ejemplos de
lenguajes orientados a objetos son C++, Java, Python. Usa
objetos y sus interacciones para diseñar aplicaciones y
programas de computadora. Está basado en varias técnicas,
incluyendo herencia, modularidad, polimorfismo y
encapsulamiento.
EVOLUCIÓ N DE LOS LENGUAJES DE PROGRAMACION EN
CISC Y RISC
a. CISC (computador de conjunto de instrucciones complejo)
Lenguaje de bajo nivel
La función principal del lenguaje de bajo nivel radica en que
trabaja directamente con el microprocesador; por lo cual se
debe de conocer el funcionamiento interno de este, tiene la
ventaja de que en él se puede realizar cualquier tipo de
programas que en los lenguajes de alto nivel no lo pueden
realizar. Otro punto sería que los programas ocupan menos
espacio en memoria.
Ventajas
Velocidad,como trabaja directamente con el microprocesa
dor al ejecutar un programa, pues como este lenguaje es
el más cercano a la máquina la computadora lo procesa
más rápido.
Eficiencia de tamaño,
un programa en ensamblador no ocupa mucho espacio en
memoria porque no tiene que cargan librerías y demás
como son los lenguajes de alto nivel.
Flexibilidad,
es flexible porque todo lo que puede hacerse con una má
quina, puede hacerse en el lenguaje ensamblador de esta
máquina; los lenguajes de alto nivel tienen en una u otra
forma limitantes para explotar al máximo los recursos
dela máquina.
Desventajas
Tiempo de programación, como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel.
Programas fuente grandes, por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes.
Peligro de afectar recursos inesperadamente, que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la máquina.
b. RISC(computador de conjunto de instrucciones reducidas)
Lenguaje de alto nivel
Los lenguajes de alto nivel son aquellos en los que las
instrucciones o sentencias son escritas con palabras similares a
las de los lenguajes humanos (en la mayoría de los casos, el
inglés). Su función principal es facilitar la escritura y
comprensión del código al programador.
Existen muchos lenguajes de alto nivel, por citar algunos:
- ADA
- BASIC
- COBOL
- FORTRAN
- C
- Modula-2
- Pascal
- Java
Estos lenguajes permiten al programador olvidarse por
completo del funcionamiento interno de la máquina para la que
están diseñando el programa. Tan solo necesitan un traductor
que entiendan el código fuente como las características de la
máquina.
Ventajas
Genera un código más sencillo y comprensible.
Escribir un código válido para diversas máquinas y, posiblemente, sistemas operativos.
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.
La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos.
Desventajas
Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.
Algunos requieren que la máquina cliente posea una determinada plataforma.
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo.
No se aprovechan los recursos internos de la máquina que se explotan mucho mejor en lenguajes máquina y ensambladores.
Aumento de la ocupación de memoria.
El tiempo de ejecución de los programas es mucho mayor
Compiladores
Es el tipo de traductor más conocido. Se trata de un programa
que traduce código fuente escrito en un lenguaje de alto nivel
(Pascal) en código máquina (no siempre). Son más rápidos que
los intérpretes pero presentan mayor dificultad a la hora de
detectar errores.