Diapositiva 1 - ALUMNOS FISI

Download Report

Transcript Diapositiva 1 - ALUMNOS FISI

LENGUAJE DE PROGRAMACION




sistema de escritura para la descripción
precisa de algoritmos o programas
informáticos.
Los lenguajes de programación son
herramientas que nos permiten crear
programas y software. Entre ellos tenemos
Delphi, Visual Basic, Pascal, Java, etc..
Una computadora funciona bajo control de
un programa el cual debe estar almacenado
en la unidad de memoria; tales como el
disco duro.
Los lenguajes de programación de una
computadora en particular se conoce como
código de máquinas o lenguaje de
máquinas.
HISTORIA







Los lenguajes de programacion surge de Charles Babagge SXIX.
Predijo mucha de las teorias en que se basan las actuales ordenadores,
esto consistia en la maquina analitica.
Por metivos tecnicos no se realizo hasta SXX con la colaboracion de Ada
Lovedby programo en tarjetas perforadas para la maquina de babagge,
considerada la programadora.
La maq analitica no se construyo.
En1823 el gob britanico apoyo para crear la maq de diferencias: dispositivo
mecanico para efectuar sumas.
Babagge abandona el proyecto y se dedica a la maquina analitica que
contaba de 5 unidades basicas:
1) Unidad de entrada.
2) Memoria.
3) Unidad de control.
4) Unidad Aritmético-Lógica.
5) Unidad de salida.
BABAGGE “PADRE DE LA INFORMATICA” NO REALIZO SUS INVENTOS POR
FALTA DE LA ELECTRONICA.
SEGÚN NIVEL DE
ABSTRACCIÓN
LENGUAJE DE MAQUINA
El lenguaje de máquina de una computadora
consta de cadenas de números binarios (0 y 1) y
es el único que "entienden" directamente los
procesadores.
 Todas las instrucciones preparadas en
cualquier lenguaje de máquina tienen por lo
menos dos partes. Especifican una operación y
una dirección de memoria.
Las instrucciones en lenguaje máquina
dependen del hardware de la computadora y,
por tanto , diferirán de una computadora a
otra.

VENTAJAS


Transferir un programa a la memoria sin
necesidad de traducción posterior.
Velocidad de ejecución superior a
cualquier otro lenguaje de programación.
DESVENTAJAS:




Dificultad y lentitud en la codificación,
Poca fiabilidad,
Dificultad grande de verificar y poner a
punto los programas,
Los programas sólo son ejecutables en
el mismo procesador.
LENGUAJE
ENSAMBLADOR








Lenguaje de programación que posee una gramatica y
estructura.
Trabaja directamente con el microprocesador; por lo cual
se debe de conocer el funcionamiento interno de este.
No puede ser ejecutado directamente en la
computadora, sino que requiere de una
traducción a lenguaje de máquina.
El traductor de programas se llama
emsamblador.
Existen dos tipos ensambladores básicos y
ensambladores modulares, o macro
ensambladores.
VENTAJAS



Velocidad .- Como trabaja directamente con
el microprocesador al ejecutar un programa,
pues como este lenguaje es el mas cercano
a la máquina la computadora lo procesa
mas 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
DESVENTAJAS:




Tiempo de programación.- 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.- Es
posible al cometer errores programando afectar los
recursos de la maquina, y esta se puede bloquear o
reiniciar.
Falta de portabilidad.- Para cada máquina existe un
lenguaje ensamblador.
LENGUAJE DE ALTO NIVEL






Es aquel que se aproxima más al lenguaje
natural humano que al lenguaje binario de las
computadoras, el que se conoce como lenguaje
de bajo nivel.
Es independiente de un hardware determinado
Utiliza palabras del lenguaje humano (por lo
general el inglés)
Expresa los algoritmos de una manera adecuada
a la capacidad cognitiva humana, en lugar
de a la capacidad ejecutora de las
máquinas.
VENTAJAS







Son más fáciles de aprender que los lenguajes
ensambladores.
Se pueden escribir más rápidamente.
Permiten mejor documentación.
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.
Reducción del coste de los programas.
Transportabilidad.
DESVENTAJAS:





La gran cantidad de lenguajes que existen actualmente
en uso, además de las diferentes versiones o dialectos
que se han desarrollado de algunos de ellos.
Incremento del tiempo, 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 maquina y
ensambladores.
Aumento de la ocupación de memoria.
El tiempo de ejecución de los programas es mucho
mayor.
COBOL






Creado en 1960 por un comité denominado CODASYL, patrocinado por el
Departamento de Defensa de los Estados Unidos.
Su nombre proviene de COmmon Business Oriented Language.
Fue diseñado inspirándose en el lenguaje FLOW-MATIC de Grace Hopper y
el IBM COMTRAN de Bob Bemer.
En 1968 salió la primera versión ANSI del lenguaje, siendo revisada
posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliado
en 1989 con funciones matemáticas, finalizando el estándar actual más
usado, conocido como COBOL-ANSI).
En la revisión de 2002 (COBOL ANS-2002) se le añadió orientación a
objetos, aunque desde la revisión de 1974 se podía crear un entorno de
trabajo similar a la orientación a objetos, y un método de generación de
pantallas gráficas estandarizado Actualmente se está preparando otra
revisión que se espera que esté finalizada para el año 2008.
Entre sus inconvenientes están sus rígidas reglas de formatos de escritura,
la necesidad de describir todos los elementos al máximo detalle, la
extensión excesiva en sus sentencias e incluso duplicación en algunos
casos, la inexistencia de funciones matemáticas y, por último, su no
adecuación a las técnicas de programación estructurada.
FORTRAN





Abreviatura de Fórmula Translator (traductor de fórmulas), fue
definido alrededor del año 1955 en los Estados Unidos por la
compañía IBM.
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.
El lenguaje fue diseñado teniendo en cuenta que los programas
serían escritos en tarjetas perforadas de 80 columnas. Así por
ejemplo, las líneas debían ser numeradas y la única alteración
posible en el orden de ejecución era producida con la instrucción
goto.
Estas características han evolucionado de versión en versión. Las
actuales contienen subprogramas, recursión y una variada gama de
estructuras de control.
C





Fué diseñado alrededor de 1970 por Dennis Ritchie, de los
Laboratorios Bell. Se emplea para escribir compiladores y sistemas
operativos; actualmente el lenguaje C es uno de los más usados
junto con sus derivados (visual C, C+, C++, etc).
Un programa en C consta de módulos que pueden llamarse
recursivamente, pero no de manera anidada. El manejo de la
memoria es dinámico.
La base del lenguaje fue creada por programadores y para
programadores, a diferencia de otros lenguajes como Basic o Cobol
que fueron creados para que los usuarios resolvieran pequeños
problemas de sus ordenadores y el segundo para que los no
programadores pudiesen entender partes del programa.
Combina la programación estructurada de los lenguajes de alto nivel
con la flexibilidad del ensamblador.
Aunque fue diseñado inicialmente para la programación de sistemas,
posteriormente su uso se ha extendido a aplicaciones técnicocientíficas, de bases de datos, de proceso de textos, etc.
Programa en un archivo
en el disco duro
•Introduccion
•Modificacion
•Diseno de algoritmo
•Programa en un papel
Editor de texto
•Almacenamiento
•Recuperacion
Compilador
Lenguaje:
maquina comprenda
Lenguaje de
Alto Nivel
traducido
No entiende
Lenguaje de
Bajo Nivel
Lenguaje de
Alto Nivel
Compilador
del programa
DESVENTAJA
DIFERENTE
COMPILADOR
PROGRAMA
escrito
Introduce
Alto nivel
Maquina (editor)
traduce
Lenguaje
maquina
COMPILADOR
Almacena
resultado
archivo
Codigo objeto
llamado
llama
Codigo
fuente
INICIO
Prog.fuente
modificacion
Compilar prog.
ERRORES
programa
enlazador
Prog. ejecutable
ejecucion
PROGRAMA
FUENTE
traduce
Ejecuta
Prog clasicos
BASIC
Q. BASIC
Practicamente
no utiliza
RENACER
aparicion
JAVA
Computadoras personales
Lenguaje de Programación
Imperativos



Son aquellos lenguajes en los cuales se le
ordena a la computadora cómo realizar una
tarea siguiendo una serie de pasos o
instrucciones.
Los lenguajes imperativos se basan en
comandos u órdenes que se le dan a la
computadora para que haga algo, con el fin
de organizar o cambiar valores en ciertas
partes de la memoria.
BASIC, C, Java, Clipper, Dbase, C#, PHP,
Perl, etc.

Los primeros lenguajes imperativos fueron los
lenguajes de máquina de los computadores
originales. En estos lenguajes, las instrucciones
fueron muy simples, lo cual hizo la implementación
de hardware fácil, pero obstruyendo la creación de
programas complejos. Fortran, cuyo desarrollo fue
iniciado en 1954 por John Backus en IBM, fue el
primer gran lenguaje de programación en superar
los obstáculos presentados por el código de
máquina en la creación de programas complejos.
Lenguajes Imperativos
Procedurales

En este tipo de lenguajes, la arquitectura
consta de una secuencia de celdas,
llamadas memoria, en las cuales se pueden
guardar en forma codificada, lo mismo
datos que instrucciones; y de un procesador,
el cual es capaz de ejecutar de manera
secuencial una serie de operaciones,
principalmente aritméticas y booleanas,
llamadas comandos .


Con un lenguaje procedural el usuario
(normalmente será un programador) especifica
qué datos se necesitan y cómo obtenerlos.
Estos lenguajes acceden a un registro, lo
procesan y basándose en los resultados
obtenidos, acceden a otro registro, que también
deben procesar. Así se va accediendo a registros
y se van procesando hasta que se obtienen los
datos deseados.
BASIC



El lenguaje BASIC fue creado en 1964
por los norteamericanos John Kemeny
y Thomas Kurtz.
Se uso para le aenseñanza y para la
programacion profesional.
Era un lenguaje poco estructurado y
recibió muchas críticas por promover
malos hábitos de programación.
Lenguaje de Programación
Orientados a Objetos



El elemento fundamental de la OOP es, como su
nombre lo indica, el objeto. Podemos definir un
objeto como un conjunto complejo de datos y
programas que poseen estructura y forman
parte de una organización.
La programación orientada a objetos expresa un
programa como un conjunto de estos objetos, que
colaboran entre ellos para realizar tareas. Esto
permite hacer los programas módulos más fáciles
de escribir, mantener y reutilizar.
De esta forma, un objeto contiene toda la
información, (los denominados atributos) que
permite definirlo e identificarlo frente a otros
objetos.


A su vez, dispone de mecanismos de
interacción (los llamados métodos) que
favorecen la comunicación entre objetos, y
en consecuencia, el cambio de estado en los
propios objetos. Esta característica lleva a
tratarlos como unidades indivisibles, en las
que no se separan (ni deben separarse)
información (datos) y procesamiento
(métodos).
Algunos lenguajes de POO: Ada, Delphi,
C++,Ruby, etc.
DELPHI


Delphi es un entorno de desarrollo de
software diseñado para la
programación de propósito general
con énfasis en la programación visual.
En sus diferentes variantes, permite
producir archivos ejecutables para
Windows, Linux y la plataforma .NET.


Delphi está basado en una versión
moderna de Pascal, denominada Object
Pascal. Borland en los últimos años
defendía que el nombre correcto del
lenguaje es también Delphi.
Pero en los manuales el nombre del
lenguaje aparecía como Object Pascal, por
lo que la comunidad de programadores no
ha adoptado mayoritariamente este
cambio
LENGUAJES DE PROGRAMACION
DECLARATIVOS
La programación declarativa es una forma
de programación que implica la descripción
de un problema dado en lugar de proveer
una solución para dicho problema, dejando
la interpretación de los pasos específicos
para llegar a dicha solución a un intérprete
no especificado. La programación
declarativa adopta, por lo tanto, un enfoque
diferente al de la programación imperativa
tradicional.
CARACTERÍSTICAS DE LOS LENGUAJES DE
PROGRAMACIÓN DECLARATIVOS






Los lenguajes declarativos están orientados a buscar la
solución del problema, sin preocuparse por la forma de llegar
a ello .
Los programas están formados por un conjunto de
definiciones o ecuaciones, las cuales describen lo que debe
ser calculado, no en sí la forma de hacerlo.
Las variables sólo pueden tener asignado un solo valor a lo
largo de la ejecución del programa, lo cual implica que no
puede existir asignación destructiva.
El orden de la ejecución no resulta importante debido a que
no existen efectos colaterales.
Las expresiones o definiciones pueden ser usadas como
valores y por lo tanto se pueden tratar como argumentos de
otras definiciones.
El control de la ejecución no es responsabilidad del
programador.
DESVENTAJAS DE LA
PROGRAMACIÓN DECLARATIVA

La principal desventaja de la programación
declarativa es que no puede resolver cualquier
problema dado, sino que está restringida al
subconjunto de problemas para los que el
intérprete o compilador fue diseñado.
VENTAJAS DE LA PROGRAMACIÓN
DECLARATIVA
Entre las ventajas se destaca que la
solución de un problema se puede
realizar con un nivel de abstracción
considerablemente alto, sin entrar
en detalles de implementación
irrelevantes, lo que hace a las
soluciones más fácil de entender
por las personas. La resolución de
problemas complejos es resuelta
por el intérprete a partir de la
declaración de las condiciones
dadas.
EJEMPLOS DE LENGUAJES
DECLARATIVOS
Algunos lenguajes declarativos que se
pueden mencionar son:
 PROLOG
 SQL
 HTML
 WSDL (Web Services Description
Language)
 XML Stylesheet Language for
Transformation
PROGRAMACIÓN LÓGICA

La programación lógica, junto con la funcional,
forma parte de lo que se conoce como
programación declarativa. En los lenguajes
tradicionales, la programación consiste en indicar
cómo resolver un problema mediante sentencias;
en la programación lógica, se trabaja de forma
descriptiva, estableciendo relaciones entre
entidades, indicando no cómo, sino qué hacer. Se
establece entonces que la idea esencial de la
programación lógica es: algoritmos = lógica +
control. Es decir, un algoritmo se construye
especificando conocimiento en un lenguaje formal
(lógica de primer orden), y el problema se resuelve
mediante un mecanismo de inferencia (control) que
actúa sobre aquél.
PROGRAMACIÓN FUNCIONAL



La programación funcional es un paradigma de programación
declarativa basado en la utilización de funciones matemáticas. El
objetivo de la programación funcional es conseguir lenguajes
expresivos y matemáticamente elegantes, en los que no sea necesario
bajar al nivel de la máquina para describir el proceso llevado a cabo por
el programa.
Los programas escritos en un lenguaje funcional están constituidos
únicamente por definiciones de funciones, entendiendo éstas no como
subprogramas clásicos de un lenguaje imperativo (pues la
programación funcional es declarativa), sino como funciones puramente
matemáticas, en las que se verifican ciertas propiedades como la
transparencia referencial (el significado de una expresión depende
únicamente del significado de sus subexpresiones), y por tanto, la
carencia total de efectos laterales.
Existen dos grandes categorías de lenguajes funcionales: los
funcionales puros y los híbridos. La diferencia entre ambos estriba en
que los lenguajes funcionales híbridos son menos dogmáticos que los
puros, al permitir conceptos tomados de los lenguajes imperativos,
como las secuencias de instrucciones o la asignación de variables. En
contraste, los lenguajes funcionales puros tienen una mayor potencia
expresiva, conservando a la vez su transparencia referencial, algo que
no se cumple siempre con un lenguaje híbrido.
PROGRAMACIÓN ORIENTADA A BASES DE
DATOS




Las bases de datos son programas que administran información y
hacen más ordenada la información, aparte de hacer la fácil de
buscar y por supuesto de encontrar.
Las bases de datos tienen muchos usos: facilitan el almacenamiento
de grandes cantidades de información; permiten la recuperación
rápida y flexible de información, con ellas se puede organizar y
reorganizar la información, así como imprimirla o distribuirla en
formas diversas.
Es claro que los lenguajes orientados a bases de datos son
declarativos y no imperativos, pues el problema es "qué" se quiere
hacer o "qué" se necesita buscar y encontrar en la base de datos, y
no se enfatiza el "cómo".
Una base de datos también se puede definir como un banco de
datos o conjunto de datos que pertenecen al mismo contexto,
almacenados sistemáticamente para su posterior uso. En este
sentido, una biblioteca puede considerarse una base de datos
compuesta en su mayoría por documentosy textos impresos en
papel e indexados para su consulta.