Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Objetivos de la Clase 9 (10/10/2013) 1. Fecha de exámenes: 17/10,30/10,06/11,20/11,28/11,05/12 2. Algoritmos y herramientas de programación Desarrollo de los temas de la presente Clase Bibliografia Cap. 1 Fundamentos de Programación (Joyanes Aguilar) Algoritmos y herramientas de programación Computadoras y lenguajes de programación El Software (los programas) o Operaciones debe realizar hardware son especificadas por una lista de instrucciones, llamada programas o software. o Software o programas de sistemas: programas indispensables para que la maquina funcione. Ej.: Sistema operativo, editores de texto, compiladores/interpretes y programas de utilidad o Sist. Operativo dirige operaciones globales de computadora, para ejecutar otros programas y controla almacenamiento y recuperación de archivos de cintas y discos. o Permite utilizar el hardware y comunicarse con el resto del software del sistema o Software significa simplemente programas Lenguajes de programación o Sirven para escribir programas que permiten la comunicación usuario/maquina o Programas especiales llamados traductores (compiladores o interpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguaje de maquina (0 y 1 bits) que esta puede entender o Programas de utilidad facilitan el uso de la computadora. Ej.: editores de texto o Programas que realizan tareas concretas se denominan programas de aplicación o Figura 1.15 o Instrucciones a la computadora Diferentes acciones de un algoritmo se expresan en instrucciones, sentencias o proposiciones. 1ras. más ligadas a leng. Maquina o bajo nivel y restantes a lenguajes de alto nivel Instrucciones básicas son cuatro • De entrada/salida • Aritmético/lógicas 1 • Selectivas • Repetitivas Lenguajes de maquina • Escritos en lenguajes directamente inteligibles por computadoras • Cadenas binarias, 0 y 1que especifican operaciones y las posiciones de memoria implicadas en la operación • Código binario • Dependen del hardware de la computadora • Diferirán de una a otra • Ventajas o Posibilidad de cargar en memoria sin necesidad de traducción o Velocidad de ejecución superior • Inconvenientes o Dificultad y lentitud de codificación o Poca fiabilidad o Dificultad para verificar y poner a punto o Solo son ejecutables en el mismo procesador Lenguajes de bajo nivel • Más fácil de utilizar que los lenguajes maquina • Igual dependen de la maquina en particular • Lenguaje ensamblador • Instrucciones: nemotécnicas • Ej.: típicos de operaciones aritméticas o ADD M, N, P o Lenguaje no puede ser ejecutado directamente por la computadora sino que requiere una fase de traducción al lenguaje maquina o Programa original se denomina programa fuente o El programa traducido a lenguaje de maquina se denomina programa objeto que si es inteligible por la computadora o El traductor de prog. Fuente a Objeto se denomina programa ensamblador existente en casi todas las computadoras o No confundir este programa con el lenguaje ensamblador 2 o Ventajas Mayor facilidad de codificación Su velocidad de calculo o Inconvenientes Dependencia total de la maquina El lenguaje ensamblador es distinto para cada computadora Formación de los programadores es más compleja porque exige conocimiento del interior de la maquina Hoy ámbito muy reducido • Aplicaciones en tiempo real • Control de procesos • Dispositivos electrónicos Lenguajes de alto nivel • Son los mas utilizados por los programadores • Para escribir y entender los programas, mucho más fácil que los anteriores • Es independiente de la maquina • Son portables o transportables • Ventajas o Formación programadores relativamente corto o La escritura de los programas se basa en reglas sintácticas similares a los lenguajes humanos o Modificaciones y puesta a punto son más fáciles o Reducción costo programas o Transportabilidad • Inconvenientes o Incremento del tiempo de puesta a punto o No aprovecha recursos internos de la maquina o Aumento de la ocupación de memoria o Tiempo de ejecución de los programas es mucho mayor • Programas fuentes tienen que ser traducido por los programas traductores: compiladores e interpretes • Ej.[leer los nombres de los lenguajes] De uso mayoritario, los que están muy extendidos, y 3 los que son de gran uso en el mundo profesional • En el ámbito de internet: java, html, xml, javascript, visual j , y ultimamente c#y PHP Traductores de lenguaje o Son programas que traducen programas fuente escritos en lenguajes de alto nivel a código maquina o Estos pueden ser compiladores o interpretes o Interpretes Traductor que toma un programa fuente lo traduce y a continuación lo ejecuta Java que para entender el código en bytes (bytecode) al que traduce un compilador Java se necesita un interprete Figura 1.17 y 1.18 o Compiladores Después de diseñado el algoritmo y escrito el programa en un editor de texto para guardarlo en un archivo dentro del disco duro Computadora no entiende lenguajes de alto nivel, debe ser traducido a un lenguaje que la maquina entienda La traducción de un programa escrito en un lenguaje de alto nivel a un lenguaje que pueda entender la computadora se hace mediante otro programa conocido como compilador Los lenguajes que la maquina entiende son el ensamblador y el de maquina El ensamblador necesita una pequeña traducción adicional antes de ser ejecutado en la computadora, este proceso suele ser automático Antes de ejecutarse un programa escrito en lenguaje de alto nivel, se debe ejecutar en primer lugar el compilador del programa, se dice que se compila el programa Desventaja • Se necesita un compilador diferente para cada tipo de computadora, y cada sistema operativo • Compiladores son programas muy grandes y caros que llevan mucho tiempo fabricarlos • El programa escrito en un lenguaje de programación se denomina programa fuente • El programa traducido a lenguaje de bajo nivel producido por el compilador se denomina programa objeto 4 • El programa objeto se puede cargar en la memoria principal de la computadora y ejecutado por la UCP o Compilación y sus fases Proceso de traducción de programas fuente a programas objeto El proceso tiene los siguientes pasos • Escritura del programa fuente con un editor y guardarlo en un dispositivo de almacenamiento • Introducir el programa fuente en memoria • Compilar el programa • Verificar y corregir errores de compilación • Obtención del programa objeto • El enlazador (linker) obtiene el programa ejecutable • Se ejecuta el programa y si no existen errores se tendrá la salida del programa • Figura 1.19 y 1.21 Historia de los lenguajes de programación o Muchos lenguajes de programación actuales tienen sus raíces en los lenguajes que nacieron a finales de los 50 y 1ros. años de los 60:cobol (60), fortran (61), basic (64),logo (67), primera alternativa a los lenguajes ensambladores o Década del 70 y 1ros. años del 80: pascal (71), C (72), ada (79) o Todos estos lenguajes seguían el estilo de programación estructurada. Lenguajes imperativos. o Nacieron dos paradigmas de programación: programacion funcional y POO (programación orientada a objetos) o Principios de los 80: C++ lenguaje imperativo con propiedades de orientación a objetos y durante los 90 paso a ser el LOO por excelencia o En 1995 SUN presenta a JAVA, lenguaje orientado a objeto y con funcionalidad muy dirigida a la red Internet o En el 2000 aparece C# de Microsoft o El lenguaje C: historia y características Lenguaje de propósito general asociado a Unix Popularidad, eficacia y potencia porque no esta ligado a sistema operativo ni a ninguna maquina Lenguaje de programación de sistemas por excelencia C evolución del lenguaje B de Thompson para el primitivo UNIX C nace en el 78 de la mano de Ritchie y Kernighan En 1983 nace estándar ANSI dellenguaje C 5 C lenguaje de alto nivel, estructurado de propósito general Permite asignación de estructuras, nueva forma de declarar funciones (prototipos) Bibliotecas estándar de funciones Hoy en el siglo XXI sigue siendo de los mas utilizados en la industria del software, centros educativos y tecnológicos Todos los fabricantes de Sist. Operativos soportan diferentes tipos de compiladores de lenguaje C o Ventajas de C: Poderoso y flexible con ordenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir mayoría de los programas que corren en la computadora C se utiliza para desarrollar software Se puede utilizar C para desarrollar S.Operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones Propiedad de portabilidad Velocidad de ejecución o Características técnicas de C Nueva sintaxis para declarar funciones Asignación de Estructuras Preprocesador mas sofisticado Nueva definición de las bibliotecas que acompaña C Colección de cabeceras estándar o Versiones actuales de C Son muchos los fabricantes de compiladores C o Breve historia de C++ C++ es heredero de C C es un subconjunto de C++ Autor Stroustrup que tomo conceptos de Simula 67 y en el 80 creo C++ para mejorar el C C++ además de añadir bibliotecas a C, presenta características y propiedades de POO C++ incorporo herencia múltiple, plantillas, etc. 1991 logro la estandarización ANSI o Breve historia de Java Creado por SUN en 1995 Estándar de la industria Lenguaje de propósito general como de Internet 6 Lenguaje para comenzar la formación en programación Lenguaje de POO diseñado para distribuir contenidos a través de una red. Permite independizarse de la plataforma y el sistema operativo que se este utilizando Idea Java poner una capa sobre cualquier plataforma de hardware y sobre cualquier sistema operativo para que cualquier aplicación Java que ligada únicamente a Java independizada de la plataforma Concepto de maquina virtual JVM Java en combinación con esta maquina es funcionar como hardware y como sistema operativo virtual emulando en software una CPU universal Programadores no tendrán que desarrollar varias versiones de la misma aplicación Permite que todas las maquinas plataformas y aplicaciones se comuniquen entre si accediendo desde cualquier equipo a las aplicaciones que residan en una red o Genealogía de Java De C, Java ha heredado su sintaxis y de C++, las características fundamentales de POO Originalmente se buscaba un lenguaje independiente de la plataforma para crear software que se incrustara en dispositivos electrónicos diversos Java ha tenido un profundo impacto en Internet Java se puede utilizar para crear aplicaciones o applets Un applet es una aplicación diseñada para poder ser transmitida por Internet y ejecutada por un navegador web compatible con Java o C# el mas joven Java tiene dificultad para la interoperabilidad de lenguajes cruzados o programación de lenguajes mezclados, o sea que el código producido por un lenguaje funcione fácilmente con el código producido por otro. Esto se requiere para la creación de sistemas de software grandes y distribuidos La no integración completa de la plataforma Java para responder a estos problemas Microsoft creo 7 C# dentro de .Net y el jefe del proyecto fue Hejlsberg De C ha heredado su sintaxis, muchas de las palabras reservadas y sus operadores De C++ ha heredado su modelo de objetos Con Java soportan programación distribuida y ambos utilizan código intermedio para conseguir portabilidad, pero difieren en los detalles. C# añade importantes innovaciones al arte de la programación C# racionaliza la creación de componentes, eliminando los problemas asociados con COM C# reúne la potencia de C++ con la seguridad de tipos de Java REVISIÓN DEL CAPÍTULO o Conceptos clave o Resumen Direcciones de Contacto vbasictl@yahoo.com.ar http://ar.groups.yahoo.com/group/tlyso_01 Preguntas Segundo Parcial Teórico Clase 9 Clase 9 1. Que son los lenguajes de programación e instrucciones a la computadora (punto 1.6, 1.6.1 libro Joyanes Aguilar) 2. Que son los lenguajes de maquina (punto 1.6.2 libro Joyanes Aguilar) 3. Que son los lenguajes de bajo nivel (punto 1.6.3 libro Joyanes Aguilar) 4. Que son los lenguajes de alto nivel (punto 1.6.4 libro Joyanes Aguilar) 5. Explicar que es un interprete. Diferencia con un compilador (punto 1.7.1 libro Joyanes Aguilar) 6. Explicar que es un compilador. Como es su funcionamiento. Cuales son sus fases. Diagrama de flujo de las fases de ejecución de un programa (punto 1.7.2 libro Joyanes Aguilar) 7. Cuales son las ventajas del lenguaje C, sus características técnicas y versiones actuales (punto 1.8.1 libro Joyanes Aguilar) 8. Que diferencia tiene C++ con el lenguaje C (punto 1.8.2 libro Joyanes Aguilar) 9. Características de JAVA y C# . Historia, herencia, ventajas (punto 1.8.3, 1.8.4 libro Joyanes Aguilar) 8 Objetivos de la Clase 9 (10/10/2013) Bibliografia Cap. 1 Fundamentos de Programación (Joyanes Aguilar)
Compartir