3. Perspectiva de historia
Primera generación:
los programas para las computadoras modernas constan de
secuencias de instrucciones codificadas como dígitos numéricos. Tal
sistema de codificación se conoce como lenguaje de maquina
lamentablemente escribir en lenguaje maquina es una tarea tediosa
que a menudo conduce a errores que se deben localizar y corregir
(esto se conoce como proceso de depuración )
4. Un lenguaje de programación es un lenguaje formal diseñado para
realizar procesos que pueden ser llevados a cabo por máquinas
como las computadoras.
5. Pueden usarse para crear programa que controlen el
comportamiento físico y lógico de una máquina, para expresar
algoritmo con precisión, o como modo de comunicación humana
6. También la palabra programación se define como el proceso de
creación de un programa de computadoras, mediante la aplicación de
procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en
particular.
Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en
lenguaje de máquina.
Prueba y depuración de programas
Desarrollo de la documentación.
7. Conceptos de programación tradicional
Los conceptos que podemos encontrar en los lenguajes de
programación imperativos como en los orientados a objetos
La programación orientada a objetos (POO, u OOP según sus siglas en
inglés)
Es un paradigma de programación que viene a innovar la forma de
obtener resultados. Los objetos manipulan los datos de entrada para la
obtención de datos de salida específicos, donde cada objeto ofrece una
funcionalidad especial.
Lenguajes de programación: C++, C, C#, FORTRAN, Java
8. PROGRAMACION ORIENTADA A OBJETOS
La programación Orientada a objetos (POO) es una forma especial de
programar, más cercana a como expresaríamos las cosas en la vida real
que otros tipos de programación. Con la POO tenemos que aprender a
pensar las cosas de una manera distinta, para escribir nuestros programas
en términos de objetos, propiedades, métodos y otras cosas que veremos
rápidamente para aclarar conceptos y dar una pequeña base que permita
soltarnos un poco con este tipo de programación.
9.
10. Reusabilidad. Cuando hemos diseñado adecuadamente las clases, se pueden usar
en distintas partes del programa y en numerosos proyectos.
Mantenibilidad. Debido a la sencillez para abstraer el problema, los programas
orientados a objetos son más sencillos de leer y comprender, pues nos permiten
ocultar detalles de implementación dejando visibles sólo aquellos detalles más
relevantes.
11. Modificabilidad. La facilidad de añadir, suprimir o modificar nuevos objetos nos
permite hacer modificaciones de una forma muy sencilla.
Fiabilidad. Al dividir el problema en partes más pequeñas podemos probarlas
de manera independiente y aislar mucho más fácilmente los posibles errores
que puedan surgir.
12. PROGRAMACION ESTRUCTURADA
Los programas son más fáciles de entender.
Un programa estructurado puede ser leído en secuencia, de arriba hacia
abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual
es típico de otros estilos de programación.
La estructura del programa es más clara puesto que las instrucciones están
más relacionadas entre sí, por lo que es más fácil comprender lo que hace
cada función.
13. Reducción del esfuerzo en las pruebas.
El programa se puede tener listo para producción normal en un tiempo
menor del tradicional; por otro lado, el seguimiento de las fallas se facilita
debido a la lógica más visible, de tal forma que los errores se pueden
detectar y corregir más fácilmente.
Programas más sencillos y más rápidos.
Aumento de la productividad del programador.
14. Se facilita la utilización de las otras técnicas para el mejoramiento de
la productividad en programación.
Los programas quedan mejor documentados internamente.
La programación estructurada permite la escritura de programas fáciles
de leer y modificar. En un programa estructurado el flujo lógico se
gobierna por tres estructuras de control básicas: secuenciales,
repetitivas y selectivas.
15. Implementación de un lenguaje
Es la manera en la que se ejecuta un programa para una determinada
combinación de software y hardware existen básicamente dos maneras
de implementar un lenguaje
Compilación. es un proceso que traduce un programa escrito en un
leguaje de programación . Generando un programa equivalente que la
maquina será capaz de interpretar .
Interpretar es una asignación de significado a la formula bien formadas
de un lenguaje formal
16. Lenguaje de programación .
puede usarse para crear un programa que controla el comportamiento
físico y lógico de una maquina ,para expresar algoritmos con precisión
o como modo de comunicación humana, la mayoría de los lenguajes de
altos nivel permiten la programación multipropósito aunque muchos de
ellos están diseñados para permitir programación dedicada como lo fue
el pascal con la matemática en su comienzo
17. Programación de actividades concurrentes
La concurrencia no es un termino fácil de definir , un programa ,
concurrente , es un programa que ejecuta mas de una actividad
simultáneamente. Sin embargo , en muchos casos esta simultaneidad
es una ilusión, en algunos sistemas concurrentes , las diferentes
actividades son realizadas en diferentes CPU , y la concurrencia es
real(concurrencia física) en otro sistema solo hay una CPU y las
diferentes actividades se ejecutan secuencialmente siguiendo una
estrategia de entrelazamiento basada en repartir el tiempo de la
ejecución
18.
19. Propiedades de Vida
La ejecución concurrente de un proceso genera dos tipos de corrección: la
seguridad y la vida. La seguridad se encarga de obtener la respuesta
“correcta”. La vida tiene que ver con la tasa de avance de un proceso, es
decir, con la velocidad a la cual avanza el calculo. La competencia por los
recursos impone restricciones en el entrelazamiento de seguimientos.
20.
21. Lenguajes de programación compilados:
Cuando los programas de una computadora se traducen a código máquina
antes de ejecutarse, tiene lugar un lenguaje de programa compilado.
22. Lenguajes de programación interpretados:
Son una alternativa diferente de los compiladores, que se aplican cuando es
necesario traducir lenguajes de alto nivel. En vez de traducir el programa
principal para luego grabarlo de manera permanente en el código del
objeto, se produce la corrida de compilación para ser usado en una corrida
de producción posterior. El programador únicamente carga el programa
principal en la computadora, junto con todos los datos que serán procesados.
23. Lenguajes de programación declarativos:
Son aquellos en los cuales se le indica a la computadora cuál es el objetivo
planteado, y que se desea obtener. De esta manera se utilizan buscadores
o bases de datos, y se traducen las palabras de la búsqueda a la
computadora que efectuará la acción.
Lenguajes de programación de descripción de máquina:
Son programas como, por ejemplo, PostScript, que se utilizan para
denominar la salida a una impresora, traducirla y seguir las
instrucciones del lenguaje de descripción de la página para construir el
texto y también los gráficos, que darán lugar a la creación de la imagen en
la página.
24. Lenguajes de programación estáticos:
Son todas las expresiones que antes de la ejecución del programa se
encargan de compilar los datos.
Lenguajes de programación dinámicos:
Son los que determinan la validez de los tipos programáticos involucrados
en las operaciones durante la ejecución del programa.