Logo Studenta

Estructura Clase9

¡Estudia con miles de materiales!

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)

Continuar navegando