Este documento presenta conceptos fundamentales sobre programación. Explica que la programación es el proceso de crear programas de computadora mediante lenguajes de programación. Describe los diferentes tipos de lenguajes (máquina, ensamblador, alto nivel) y traductores (compiladores, intérpretes). También cubre paradigmas de programación como imperativo y orientado a objetos, y conceptos como pruebas, depuración y programación modular.
Se recomienta leer en particular las secciones siguientes : (1) Lenguaje de máquina ; (2) Lenguaje ensamblador ; (3) Código máquina (o lenguaje de máquina).
Se recomienta leer en particular las secciones siguientes : (1) Lenguaje de máquina ; (2) Lenguaje ensamblador ; (3) Código máquina (o lenguaje de máquina).
Diapositiva, Exposición de Ensamblador y Enlazador
Integrantes:
Ricky Zheng
José Díaz
Universidad Fermín Toro, Decanato de Ingeniería, Escuela de Computación.
Diapositiva, Exposición de Ensamblador y Enlazador
Integrantes:
Ricky Zheng
José Díaz
Universidad Fermín Toro, Decanato de Ingeniería, Escuela de Computación.
Esta presentación muestra algunas facilidades acerca de los lenguajes de programación que se pueden utilizar para llevar contenidos y colocar actividades en los ambientes virtuales de aprendizaje...!
Estas presentaciones muestran algunas facilidades de los lenguajes de programación que se pueden utilizar para llevar contenidos y colocar actividades de aprendisaje...!
U.C. Algorítmica y Programación. Unidad 2.- Estándares de Calidad en el Diseño de Algoritmos y Construcción de Programas. Tema 2.2.- Estilos de Programación
U.C. Algorítmica y Programación. Unidad 2. Estándares de Calidad en el Diseño de Algoritmos y Construcción de Programas. Tema 2.1 Estándares de Calidad
Principios Fundamentales para el Proceso de la toma de decisionesYenny Salazar
Mapa conceptual de los aspectos más significativo del tema relacionado con los principios fundamentales del proceso de la toma de decisiones en el ámbito de las instituciones educativas.
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
1. Algorítmica y Programación
Unidad 1:
Algoritmos y
Programas
1.3.-Programación
Profa. Yenny Salazar
Reconocer los conceptos y
características fundamentales de la
programación.
2. Contenido
• Programación
• Programas de Computadoras
• Lenguaje de Programación
– Lenguaje de Máquina
– Lenguaje de Bajo Nivel (ensamblador)
– Lenguaje de Alto Nivel
• Traductores de Lenguaje
– Interpretes
– Compiladores
– La compilación y sus fases
• Pruebas y Depuración
• Paradigmas de Programación
– Lenguajes Declarativos
– Lenguajes Imperativos (Procedimentales)
• Actividades
3. Programación
En informática, se refiere a la creación de un programa de
computadora (o simplemente programa), aplicaciones
informáticas o videojuegos; es decir un software.
Es el proceso por el cual una persona (programador)
desarrolla un programa valiéndose de una herramienta que le
permita escribir el código (el cual puede estar en uno o varios
lenguajes, tales como C, C++, Java, Python, etc.), que sea capaz
de traducirse a lenguaje de máquina, el cual puede ser
entendido por un microprocesador. Este último paso se conoce
como compilación y es necesario para que el código pueda ser
ejecutado por la plataforma para la cual haya sido creado, que
bien puede ser un ordenador, una tableta, una consola de video
juego o un teléfono móvil. Existe también una forma de traducir
el código denominada interpretación (intérpretes de
comandos), que consiste en analizar línea a línea, hasta que se
traduzca lo suficiente como para poder realizar una tarea.
4. Programas de Computadoras
Existen diferentes conceptos; entre ellos:
1.Es un algoritmo desarrollado en un determinado lenguaje de
programación, para ser utilizado por la computadora; es
decir, una serie de pasos o instrucciones ordenadas y finitas
que pueden ser procesadas por una computadora, a fin de
permitirnos resolver un problema o tarea específica.
2.Secuencia de instrucciones mediante las cuales se ejecutan
diferentes acciones de acuerdo con los datos que se desee
procesar en la computadora.
3.Expresión de un algoritmo en un lenguaje preciso que puede
llegar a entender un computador.
Cabe destacar que, no todo algoritmo puede llegar a ser un
programa de computadora, debido a que existen algunos
algoritmos que requieren ser realizados físicamente. Los
programas que puede ejecutar una computadora son de
proceso lógico.
5. Es la combinación de símbolos y reglas que permiten la
elaboración de programas con los cuales la computadora
puede realizar tareas o resolver problemas de manera
eficiente.
Los lenguajes de programación se clasifican en:
1. Lenguaje máquina.
2. Lenguaje de bajo nivel (ensamblador).
3. Lenguaje de alto nivel.
Lenguaje de Programación
Lenguaje de Alto Nivel
C, Java, Phyton, …
Lenguaje de Bajo Nivel
Ensamblador
Máquina
Ordenador
Programa
ensamblador
Programa traductor
- Compilador
- Intérprete
- Máquina virtual
6. Lenguaje de Máquina
Es el lenguaje que posee instrucciones que el entiende
directamente el microprocesador, por tanto no se necesita un
traductor para que la UCP (unidad de procesamiento central)
pueda entender y ejecutar el programa.
Este es un lenguaje binario que depende exclusivamente del
hardware, y por lo tanto cada microprocesador tiene un
lenguaje de máquina diferente.
Este código binario, compuesto por 0 y 1 (patrones de bit,
tales como 11110000, 01110011...) los cuales son muy difíciles
de recordar y manipular por las personas. En consecuencia, se
necesitan lenguajes de alto nivel que permitan escribir los
programas, que deben ser traducido por un ensamblador para
que lo entienda el computador.
7. Lenguaje de Bajo Nivel
(Ensamblador)
Es una representación más entendible para el humano que
los códigos del lenguaje máquina. Cada instrucción en lenguaje
ensamblador representa una instrucción en el lenguaje
máquina.
El lenguaje ensamblador aparece casi a la par con el lenguaje
máquina, esto debido a que los fabricantes de hardware
diseñan sus chips pensando en las instrucciones de un lenguaje
de ensamblado.
Ejemplo:
Aunque es más fácil de entender por las personas sigue
siendo muy complicado y aún necesita ser traducido a código
binario.
Lenguaje Máquina Lenguaje Ensamblador
0010111000000001
0000000000001010
mov ax, 10
8. Lenguaje de Alto Nivel
Conjunto de instrucciones (acciones u operaciones que
debe realizar la máquina) que la computadora podrá entender
directamente en su código máquina una vez traducidas.
Es semejante al lenguaje humano (en general en inglés), lo que
facilita la elaboración y comprensión del programa. Por
ejemplo Basic, Pascal, Cobol, Fortran, C, JAVA, Python, etc.
9. Traductores de lenguaje
El proceso de traducción de un programa fuente escrito en
un lenguaje de alto nivel a un lenguaje máquina comprensible
por la computadora, se realiza mediante programas llamados
traductores.
Los traductores de lenguaje son programas que traducen a
su vez los programas fuente escritos en lenguajes de alto nivel
a código máquina.
Los traductores se dividen en:
• Compiladores
• Intérpretes
Intérpretes
Programa Fuente
Intérprete
Traducción y ejecución
línea a línea
Compiladores
Programa Fuente
Compilador
Programa objeto
10. Intérpretes
Es un programa informático capaz de analizar y ejecutar otros
programas, escritos en un lenguaje de alto nivel.
Es un traductor que toma un programa fuente, lo traduce y a
continuación, lo ejecuta.
El sistema de traducción consiste en: traducir la primera sentencia
del programa a lenguaje máquina, se detiene la traducción, se ejecuta
la sentencia; a continuación, se traduce la siguiente sentencia, se
detiene la traducción, se ejecuta la sentencia y así sucesivamente
hasta terminar el programa.
Los programas interpretados suelen ser más lentos debido a la
necesidad de traducir el programa mientras se
ejecuta, pero a cambio son más flexibles
como entornos de programación y depuración.
Además ofrece un entorno no dependiente
de la máquina donde se ejecuta el intérprete,
sino del propio intérprete (lo que se conoce
comúnmente como máquina virtual).
Programa fuente
Intérpretes
Traducción y ejecución
línea a línea
11. Compiladores
Es un programa que traduce los códigos fuente escritos en
lenguaje de alto nivel a lenguaje máquina. La traducción del
programa completo se realiza en una sola operación
denominada compilación del programa; es decir, se traducen
todas las instrucciones del programa en un solo bloque. El
programa compilado y depurado (una vez eliminados los
errores del código fuente) se denomina programa
ejecutable, porque ya se puede ejecutar directamente
y cuantas veces se desee; sólo deberá volver a compilarse de
nuevo en el caso de que se modifique alguna instrucción
del programa. De este modo el programa
ejecutable no necesita del compilador para
su ejecución. Los traductores de lenguajes
típicos más utilizados son: C, C++, Java,
C#, Pascal, FORTRAN y COBOL
Programa fuente
Compilador
Programa objeto
12. La Compilación y sus Fases
Para conseguir el programa máquina real se debe utilizar un
programa llamado montador o enlazador (linker). El proceso de
montaje conduce a un programa en lenguaje máquina
directamente ejecutable. El proceso de
ejecución de un programa escrito en un
lenguaje de programación y mediante un
compilador suele tener los siguientes
pasos:
1. Escritura del programa fuente con
un editor y guardarlo en un disposi-
tivo de almacenamiento.
2. Compilar el programa.
3. Verificar y corregir errores de compilación.
4. Obtención del programa objeto.
5. El enlazador obtiene el programa ejecutable.
6. Se ejecuta el programa y, si no existen
errores, se tendrá la salida del programa.
Programa objeto
Enlazador (linker)
Programa ejecutable
(en lenguaje de máquina)
Programa fuente
Compilador
(traductor)
Editar y
corregir
Error de
sintaxis
13. Prueba y Depuración
La prueba consiste en capturar datos hasta que el programa
funcione correctamente. La actividad de localizar errores se le
llama depuración. Existen dos tipos de pruebas:
• De Sintaxis: se ejecutan primero, son las más sencillas y las
realiza el compilador del programa cada vez que este se
ejecuta, hasta que el código no presente errores, es decir
que la sintaxis del lenguaje sea la correcta, de lo contrario el
propio compilador va mostrando los errores encontrados
para que se modifiquen y se pueda ejecutar el código; estos
errores pueden ser falta de paréntesis, puntos y comas o
palabras reservadas mal escritas.
• De Lógica: son las más complicadas ya que éstas las realiza
el programador; consisten en la captura de diferentes valores
y revisar que el resultado sea el deseado, es decir el
programador tendría que modificar el código hasta que el
programa funcione correctamente.
14. Paradigmas de Programación
Son estilos de desarrollo de programas. Es decir, un modelo para
resolver problemas computacionales. Los lenguajes de programación,
necesariamente, se encuadran en uno o varios paradigmas a la vez a
partir del tipo de órdenes que permiten implementar, algo que tiene
una relación directa con su sintaxis.
Representan fundamentalmente enfoques diferentes para la
construcción de soluciones a problemas y por consiguiente afectan al
proceso completo de desarrollo de software.
El paradigma representa un enfoque particular o filosofía para la
construcción de software. Cada uno tendrá sus ventajas e
inconvenientes, será más o menos apropiado, pero no es correcto
decir que exista uno mejor que los demás.
Fundamentalmente se busca con la aplicación de los diferentes
enfoques:
• Reducir la dificultad para el mantenimiento de las aplicaciones,
• Mejorar el rendimiento del programador y, en general,
• Mejorar la productividad y calidad de los programas.
15. Paradigmas de Programación
Los principales paradigmas de programación son:
Declarativos
Funcional.
Lógica.
Imperativos
Estructurada.
Modular.
Orientado a
Objeto.
16. Paradigmas de Programación
Lenguajes Declarativos
Solicita al programador que describa el problema en lugar
de encontrar una solución algorítmica al problema; es decir,
un lenguaje declarativo utiliza el principio del razonamiento
lógico para responder a las preguntas o cuestiones
consultadas. Se basa en la lógica formal y en el cálculo de
predicados de primer orden. El razonamiento lógico se basa
en la deducción. El lenguaje declarativo por excelencia es
Prolog.
• Lógico: El problema se modela con enunciados de lógica
de primer orden.
• Funcional: Los programas se componen de funciones, es
decir, implementaciones de comportamiento que reciben
un conjunto de datos de entrada y devuelven un valor de
salida.
17. Paradigmas de Programación
Lenguajes Imperativos (Procedimentales)
Representa el método tradicional de la programación. Es un
conjunto de instrucciones que se ejecutan una por una, de
principio a fin, de modo secuencial excepto cuando intervienen
instrucciones de salto de secuencia o control.
Este paradigma define el proceso de programación como el
desarrollo de una secuencia de órdenes (comandos) que
manipulan los datos para producir los resultados deseados. Por
consiguiente, señala un enfoque del proceso de programación
mediante la realización de un algoritmo que resuelve de modo
manual el problema y a continuación expresa ese algoritmo
como una secuencia de órdenes.
En un lenguaje procedimental cada instrucción es una orden u
órdenes para que la computadora realice alguna tarea específica.
Por excelencia son: FORTRAN, COBOL, Pascal, BASIC,
ALGOL, C y Ada (aunque sus últimas versiones ya tienen un
carácter completamente orientado a objetos).
18. Programación Estructurada
Permite utilizar estructuras que facilitan la modificación,
reutilización y lectura del código, así como el uso del concepto
de función (programación modular), que agrupan códigos para
la realización de una determinada tarea. Estas funciones pueden
ser utilizadas en cualquier parte del programa, el número de
veces que se necesiten.
Además permite una representación más clara del
funcionamiento de los programas mediante diagramas, en los
que se representan estructuras condicionales, bucles, etc. Todo
se ve como módulos que pueden colaborar entre ellos. Este
tipo de programación tenía una serie de limitaciones que
provocaron la aparición de otros paradigmas.
19. Programación Modular
Es la evolución de la programación estructurada, que consiste
en dividir un programa en módulos o subprogramas con el fin
de hacerlo más legible y manejable.
Se basa en la filosofía de resolver un problema dividiéndolo en
problemas más pequeños, llamados subproblemas. De esta
manera, en lugar de resolver una tarea compleja y tediosa,
resolvemos otras más sencillas y a partir de ellas llegar a la
solución. Esta técnica se usa mucho en programación ya que
programar no es más que resolver problemas, y se le suele
llamar diseño descendente, metodología del divide y vencerás o
programación top-down.
Es evidente que si esta metodología nos lleva a tratar con
subproblemas, entonces también tengamos la necesidad de
poder crear y trabajar con subprogramas para resolverlos. A
estos subprogramas se les suele llamar módulos, de ahí viene el
nombre de programación modular.
20. Programación Orientados a Objetos (OO)
Guarda analogía con la vida real. El desarrollo de software
OO se basa en el diseño y construcción de objetos que se
componen a su vez de datos y operaciones que manipulan esos
datos. El programador define en primer lugar los objetos del
problema y a continuación los datos y operaciones que actuarán
sobre esos datos. Las ventajas de la programación orientada a
objetos se derivan esencialmente de la estructura modular
existente en la vida real y el modo de respuesta de estos
módulos u objetos a mensajes o eventos que se producen en
cualquier instante.
C++ lenguaje orientado a objetos, por excelencia, es una
extensión del lenguaje C y contiene las tres propiedades más
importantes: encapsulamiento, herencia y polimorfismo. El Java
y el C# son herederos directos de C++ y C, y constituyen los
lenguajes orientados a objetos más utilizados.
21. Actividades
1. Realizar un resumen de los contenidos temáticos
presentados.
2. En función al resumen elaborado, crear un mapa
conceptual.
22. Algorítmica y Programación
Unidad 1:
Algoritmos y Programas
1.3.- Programas
Profa. Yenny Salazar
Referencias:
Corona, M. y Ancona M. 2011. Diseño de
algoritmos y su codificación en lenguaje C.
McGraw-Hill. México.
Joyanes, L. y Zahonero, I. 2002. Programación en
C. Metodología, algoritmos y estructura de
datos. McGraw-Hill.
Joyanes, L. 2008. Fundamentos de Programación,
Algoritmos, Estructura de Datos y Objetos.
Cuarta edición. McGraw-Hill.
López, J. Algoritmos y Programación. 2009.
Segunda Edición. Eduteka.