You are on page 1of 24

EXAMEN ORDINARIO

UNIDAD I

POR: GÓMEZ PÉREZ JESÚS FRANCISCO


ING. EN SISTEMAS COMPUTACIONALES

ASIGNATURA: FUNDAMENTOS DE
PROGRAMACION

CATEDRATICO: TOLEDO ALVAREZ JOSE ANGEL


Explique Ampliamente el desarrollo histórico de los Lenguajes
de Programación (con fechas, imágenes, nombres y
aportaciones).
 RESULTA INSTRUCTIVO EXAMINAR UNA HISTORIA BREVE DEL
DESARROLLO DE LOS LENGUAJES DE PROGRAMACIÓN; ADEMÁS SE
PUEDE ESTABLECER UNA CLASIFICACIÓN ATENDIENDO AL DESARROLLO
DE LOS LENGUAJES DESDE LA APARICIÓN DE LAS COMPUTADORAS.

 LOS COMIENZOS

 PRIMEROS ALGORITMOS ESCRITOS EN TABLAS DE ARCILLA (1500 – 3000


A.C.) EN MESOPOTAMIA.

 NO TENÍAN SENTENCIAS CONDICIONALES (SI SE CUMPLE <COND>, HACER


<SENTENCIAS>).

 SI HABÍA MÁS DE UNA POSIBILIDAD, REPETÍAN EL ALGORITMO CON


ALGUNAS MODIFICACIONES.

 LAS ITERACIONES SE EXPRESABAN DE MANERA EXPLÍCITA, REPITIENDO


LAS VECES QUE FUERA NECESARIO.

 NO SE SUPERÓ ESTE NIVEL DE ANÁLISIS HASTA EUCLIDES (300 A.C.) QUIEN


DESCRIBE UN ALGORITMO PARA HALLAR EL MÁXIMO COMÚN DIVISOR DE
UN CONJUNTO DE ENTEROS.

5/3/2008 Presentation page 2


 Historia Reciente

 Charles Babbage (1792 – 1871) desarrolla sus máquinas “Diferencial” y


“Analítica”. Colabora con él Ada Augusta, Condesa de Lovelace, quien es
considerada como la primera programadora. Ella desarrolló programas con un
esquema parecido al de los lenguajes imperativos posteriores e inició el área
informática cuyo objetivo es el estudio y análisis de los algoritmos.
 Posteriormente (1930 y 1940) surgen numerosas notaciones para expresar
procedimientos de cómputo. Estos dieron lugar al desarrollo posterior.

 Primera generación (1GL): lenguajes máquina y ensambladores. Cada instrucción


del lenguaje ensamblador se corresponde directamente con las instrucciones en
lenguaje máquina. En lugar de usar 1s y 0s se utilizan abreviaturas denominadas
mnemotécnicos.

 Segunda generación (2GL): incluye a los primeros lenguajes imperativos de alto


nivel (FORTRAN y COBOL). Estos eran muy diferentes a los que conocemos hoy: el
FORTRAN, por ejemplo, tenían muy poca flexibilidad, el usuario no podía definir
funciones, las variables no podían tener más de 2 caracteres como nombre, etc.

5/3/2008 Presentation page 3


Tercera generación (3GL): lenguajes de alto nivel, imperativos; se utilizan hasta hoy. El
iniciador de esta generación fue el ALGOL, a partir del cual se desarrollan el PASCAL, ADA y
APL. Con estos lenguajes surgen las ideas de bloques y procedimientos, así como las de tipo de
datos y chequeos de tipos, se utilizan palabras reservadas, sentencias iterativas, cadenas de
caracteres, procedimientos recursivos, etc. Posteriormente se incluyó la posibilidad de definir
datos abstractos y manejar excepciones.

Cuarta generación (4GL): orientado a aplicaciones de gestión y manejo de bases de datos.


Utilizan sentencias expresadas en inglés para pedir a la computadora que realice acciones, sin
necesidad de especificar cómo realizarlas. Algunos ejemplos son SQL

Quinta generación (5GL): orientados a la inteligencia artificial y al procesamiento del lenguaje


natural.

5/3/2008 Presentation page 4


APARICIÓN DE LENGUAJES DE PROGRAMACIÓN DE ALTO
NIVEL (CRONOLOGIA).

1953--FORTRAN Job Backus propone el desarrollo de un nuevo lenguaje


1954--FORTRAN Un equipo de IBM comienza a trabajar en el FORTRAN
1957--FORTRAN IBM desarrolla la primera versión.

1959--LISP El profesor John McCarthy y sus alumnos desarrolla el LISP

1960--ALGOL Se reúnen representantes europeos y de EEUU para la creación de


un nuevo lenguaje

5/3/2008 Presentation page 5


1960--COBOL Fue creado COBOL

1962—APL Se publica el libro de Kenneth Iverson “A Programming Language


Mediado de los 60-- APL El APL es implantado por IBM en una versión conocida
como APL/360

1965—BASIC Aparece BASIC

5/3/2008 Presentation page 6


1966—FORTRAN Aparece el FORTRA IV
1968—ALGOL Se implemento una nueva versión multipropósito
Finales de los 60—APL Está disponible para el mercado en general
1970—PASCAL Niklaus Wirth diseña PASCAL

1972—PROLOG Se desarrolla en la Universidad de Aix-Marsailles en Francia.

5/3/2008 Presentation page 7


1972—C Dennis Ritchie crea el lenguaje C.
1977—FORTRAN Aparece el FORTRAN 77

Finales de los 70--MODULA-2 Niklaus Wirth dirige el desarrollo de MODULA-2

5/3/2008 Presentation page 8


 Principio de los 80--C++ Se desarrolla el lenguaje C++
 1985—CLIPPER Se crea CLIPPER
 1986—CLIPPER Aparece CLIPPER AUTUMN’86
 1987—CLIPPER CLIPPER SUMMER’87
 1990—FORTRAN Aparece el FORTRAN 90
 Principios 90--JAVA James Gosling y su equipo comienzan a desarrollar JAVA

5/3/2008 Presentation page 9


 1993--Visual C++ Se desarrolla el lenguaje Visual C++

5/3/2008 Presentation page 10


 1994—DELPHI Aparece la primera versión

 1995—JAVA Se lanza al mercado JAVA


 1999—DELPHI Aparece Delphi 5.0 Para windows 98 NT/2000
 Bibliografías: http://elistas.egrupos.net/cgi-
bin/eGruposDMime.cgi?K9D9K9Q8L8xumopxCqydCVPSCRtjogkmCnoqdy-qlhhyCSUdfb7
 http://www.monografias.com

5/3/2008 Presentation page 11


Explique ampliamente en que consiste la Ingeniería de Software y
cuales son sus herramientas, técnicas y métodos para el desarrollo del
mismo.

 La Ingeniería de software designa el conjunto de técnicas destinadas a la


producción de un programa de computadora, más allá de la sola actividad de
programación. Forman parte de esta disciplina las ciencias computacionales y el
manejo de proyectos, entre otros campos, propios de la rama más genérica
denominada Ingeniería informática.
 El software es el conjunto de instrucciones que permite al hardware de la
computadora desempeñar trabajo útil. En las últimas décadas del siglo XX, las
reducciones de costo en hardware llevaron a que el software fuera un componente
que participa en muchos de los dispositivos usados por las sociedades
industrializadas. Asimismo, se considera parte del software a la documentación
generada durante el desarrollo del proyecto.

 Etapas del proceso


 La ingeniería de software requiere llevar a cabo muchas tareas, sobre todo las
siguientes:
 Análisis de requisitos
 Extraer los requisitos de un producto de software es la primera etapa para crearlo.
El resultado del análisis de requisitos con el cliente se plasma en el documento
ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir
definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama
de Entidad/Relación, en el que se plasman las principales entidades que
participarán en el desarrollo del software.

5/3/2008 Presentation page 12


 Especificación
 Es la tarea de describir detalladamente el software a ser escrito, en una forma
matemáticamente rigurosa. En la realidad, la mayoría de las buenas
especificaciones han sido escritas para entender y afinar aplicaciones que ya
estaban desarrolladas. Las especificaciones son más importantes para las
interfaces externas, que deben permanecer estables.
 Diseño y arquitectura
 Se refiere a determinar como funcionará de forma general sin entrar en detalles.
Según Yourdon consiste en incorporar consideraciones de la implementación
tecnológica, como el hardware, la red, etc. Se definen los casos de uso para cubrir
las funciones que realizará el sistema, y se transforman las entidades definidas en
el análisis de requisitos en clases de diseño, obteniendo un modelo cercano a la
programación orientada a objetos.
 Programación
 Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería
de software, pero no es necesariamente la porción más larga.
 Prueba
 Consiste en comprobar que el software realice correctamente las tareas indicadas
en la especificación. Una técnica de prueba es probar por separado cada módulo
del software, y luego probarlo de forma integral.

5/3/2008 Presentation page 13


 Documentación
 Realización del manual de usuario, y posiblemente un manual técnico con el
propósito de mantenimiento futuro y ampliaciones al sistema.
 Mantenimiento
 Mantener y mejorar el software para enfrentar errores descubiertos y nuevos
requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del
software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar
mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o
bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De
manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de
construcción es dar mantenimiento.

 Bibliografías: http://es.wikipedia.org/wiki/Desarrollo_de_software
 www.monografias.com

5/3/2008 Presentation page 14


Explique ampliamente en que consiste el paradigma de programación
denominado POO y cuales son los pasos metodológicos para su buena
aplicación

 La Programación Orientada a Objetos es un paradigma de programación importante


que está ganando popularidad. En la programación orientada a objetos, las
estructuras de datos y los algoritmos se integran en unidades, comúnmente
llamadas clases. La POO contrasta con la programación procedimental (que usa
algoritmos y estructuras de datos separados).

No depende estrictamente del lenguaje: se puede hacer POO con lenguajes no


clasificados como tales (por ejemplo C), y se puede programar en estilo
procedimental con lenguajes clasificados como Orientados a Objetos. Se ha
clasificado como de POO a lenguajes que tienen características especiales o
añadidos que facilitan la POO.

Los lenguajes funcionales son de una clase un poco diferente -entre otras cosas, los
lenguajes funcionales son un súper conjunto de POO. La programación lógica
(Prolog), también llamada programación declarativa, por otro lado, no tiene relación
con otros tipos de programación en un sentido similar.

Bibliografía: http://programacion.blogcindario.com/

5/3/2008 Presentation page 15


Explique detalladamente y de 5 ejemplos de los elementos primordiales
en el MOO: Abstracción, Encapsulamiento, Modularidad, Jerarquía y
Herencia, Polimorfismo

 ABSTRACCION:
 Característica que permite identificar las cualidades esenciales del objeto.

 EJEMPLO:

5/3/2008 Presentation page 16


 ENCAPSULAMIENTO:
 Es la característica que permite que un objeto oculte información esencial.
 La cual esta oculta al mundo exterior.

 EJEMPLO:

5/3/2008 Presentation page 17


 MODULARIDAD:
 La Modularidad es la propiedad que permite subdividir una aplicación en partes más
pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente
como sea posible de la aplicación en sí y de las restantes partes.
 “Divide y vencerás”

 EJEMPLO:

5/3/2008 Presentation page 18


 JERARQUIA:
 La jerarquía es el orden de los elementos de una serie según su valor. De igual
modo, es la disposición de personas, animales o cosas, en orden ascendente o
descendente, según criterios de clase, poder, oficio, categoría, autoridad o cualquier
otro asunto que conduzca a un sistema de clasificación.

 HERENCIA:
 Herencia es la capacidad de un objeto (clase) para utilizar las estructuras y los
métodos existentes en antepasados o ascendientes.

 • Es la reutilización de código desarrollado anteriormente.


 • Cuando usamos herencia decimos que hacemos programación por herencia:
 Definición de nuevos tipos a partir de otros con los que comparten algún tipo de
característica.

5/3/2008 Presentation page 19


 HERENCIA SIMPLE:
 Es aquella en la que cada clase derivada hereda una única clase; herencia simple
se refiere además de que cada clase tiene un solo antecesor, pero cada clase base
 puede tener muchos descendientes.

 HERENCIA MÚLTIPLE:
 Es aquella en la cual una clase derivada tiene mas de una clase base.
 Sólo 2 lenguajes incorporan herencia múltiple: Eiffel y C++

5/3/2008 Presentation page 20


 POLIMORFISMO:
 Polimorfismo es la capacidad que tienen objetos de diferentes clases de responder
al mismo mensaje o evento.
 • Esto significa que puede haber muchos mensajes con el mismo nombre, en
diferentes clases. Cada Clase responde al mensaje con su código propio (o
método).

 Bibliografía: http://programacion.blogcindario.com/
 http://monografias.com

5/3/2008 Presentation page 21


Explique ampliamente cuales son las ventajas y desventajas del Modelo de
Objetos y de la POO sobre los otros paradigmas (¿Qué dicen los padres de la
POO al respecto? Investigue en Internet y encuentre artículos complementarios
que les de diferentes puntos de vista).

 La Programación Orientada a Objetos es un paradigma de programación importante


que está ganando popularidad. En la programación orientada a objetos, las
estructuras de datos y los :]algoritmos se integran en unidades, comúnmente
llamadas clases. La POO contrasta con la programación procedimental (que usa
algoritmos y estructuras de datos separados).
 • Los beneficios de modelo de objetos nos permite mostrar la magnitud de los
lenguajes de programación basados en objetos, Como también a su vez esta misma
utiliza jerarquías de clases para la elaboración del diseño.
 Así como también nos permite reutilizar el software además de los diseños,
permitiendo así la creación de nuevas y mejores aplicaciones reutilizadas .Crea
sistemas mas flexibles para en un futuro poder modificarlos, y es aplicada en las
bases de datos, análisis matemático, animación, robótica, composición de música,
etc...

5/3/2008 Presentation page 22


 Un lenguaje no es por fuerza mejor que otro por poseer una característica de la
que carece el otro. Existen muchos ejemplos de lo contrario. Lo importante no es
tanto que características posee un lenguaje, sino que estas sean suficientes para
apoyar los estilos de programación deseados en las áreas de aplicaciones
deseadas:

 • Todas las características deben estar integradas al lenguaje en forma muy limpia
y elegante.
 • Debe ser posible utilizar una combinación de características distintivas para lograr
 soluciones que de otra manera habrían requerido características independientes
adicionales.
 • El numero de características espurias y de aplicación especial debe ser lo mas
bajo
 posible.
 • La realización de un rasgo distintivo no debe implicar un gasto extra significativo
para los programas que no lo requieran.
 • Un usuario solo necesita saber acerca del subconjunto del lenguaje empleado
explícitamente para escribir un programa.
 Bibliografía: http://programacion.blogcindario.com/

5/3/2008 Presentation page 23


 REFERENCIAS BIBLIOGRAFICAS:
 http://programacion.blogcindario.com/
 http://monografias.com
 http://wikipedia.com

5/3/2008 Presentation page 24

You might also like