Send a link to your students to track their progress
37 Terms
1
New cards
Clasificación por filosofía de programación
\ Lenguajes declarativos:
El proceso que sigue el ordenador para realizar la tarea deseada no aparece explícitamente en el programa. El programa describe el problema que se desea resolver mediante relaciones entre funciones o entre estructuras de datos. LISP y Prolog.
2
New cards
Es una máquina programable
Un ordenador
3
New cards
Un programa de ordenador
es una secuencia de instrucciones que el ordenador ejecuta una tras otra. Dichas instrucciones se almacenan en la memoria.
4
New cards
El ______________ solo entiende información codificada en binario.
ordenador
5
New cards
El conjunto de instrucciones codificadas que entiende el ordenador se denomina ________________
lenguaje máquina
6
New cards
Este lenguaje está muy cerca del ordenador, pero muy lejos de lo que podemos entender los humanos es el :
lenguaje máquina
7
New cards
Se denomina ____________ Los lenguajes más legibles por el ser humano, pero no comprensibles por el ordenador los denominamos lenguajes de _________
lenguaje de bajo nivel - alto nivel
8
New cards
Surgió el problema de encontrar la manera de representar las acciones que iba a llevar a cabo el ordenador, con la restricción de que únicamente se nos permitía almacenar números binarios en memoria. Para solucionar esta limitación se pensó lo siguiente: para cada acción que realice nuestro ordenador se le asigna un número, y dicho número será conocido como su _________ Por tanto, al conjunto de todos los códigos de operación definidos para una máquina se le denomina juego de instrucciones.
código de operación (opcode).
9
New cards
El ordenador no entiende directamente el ________________, por lo que hay que traducirlo al lenguaje máquina ya que el ordenador solo entiende unos y ceros.
lenguaje ensamblador
10
New cards
Los lenguajes ______ __y lenguajes__ ___________ dependen del hardware, por tanto, para cada CPU tendremos un lenguaje máquina distinto y, por tanto, un lenguaje ensamblador diferente.
ensambladores y máquina
11
New cards
Los lenguajes más primitivos fueron los _____________
lenguajes máquina.
12
New cards
La primera gran mejora llegó con el uso del _______________ como abstracción del lenguaje máquina
lenguaje ensamblador
13
New cards
, junto con la automatización de la generación de _____________. Se redujeron en gran medida los errores triviales en la generación de código.
código máquina
14
New cards
En los años 50 y 60 aparecieron los primeros lenguajes de alto nivel. Esto ocurrió gracias al aumento de potencia del hardware. fue el ________________ primer lenguaje de programación.
FORTRAN
15
New cards
La principal premisa que existe a la hora de crear un nuevo _____________ nivel es la de abstraerse lo máximo posible del lenguaje de bajo nivel, y facilitarle al máximo la vida al desarrollador para así aumentar su eficiencia.
lenguaje de alto
16
New cards
Hay lenguajes de alto nivel que se desarrollaron con la finalidad de que se traducción al lenguaje de bajo nivel fuese lo más sencilla posible, _______________, que permite trabajar con librerías de lenguaje de alto nivel, pero a su vez está diseñado para que su traducción a lenguaje de bajo nivel sea sencilla.
como por ejemplo C
17
New cards
Ventajas:
El lenguaje ensamblador posee algunas ventajas con respecto a su evolución hacia los lenguajes de alto nivel:
* Velocidad: Los compiladores traducen una única vez el código, y almacenan esta compilación en un fichero.
\ * Eficiencia de tamaño: Por norma general, los programas generados por lenguaje ensamblador suelen ser más extensos que los generados por lenguaje interpretado para la resolución de un mismo problema.
\ * Flexibilidad: Mientras que el lenguaje ensamblador tiene exceso de instrucciones máquina, los lenguajes de alto nivel tienen menos capacidad de explotar al máximo estos recursos.
18
New cards
Desventajas:
El lenguaje ensamblador posee algunas desventajas con respecto a su evolución hacia los lenguajes de alto nivel:
* Tiempo de programación: El tiempo que tarda el programador en implementar la solución con un lenguaje de alto nivel es bastante inferior a la que tardaría en implementarla con lenguaje de bajo nivel.
\ * Programas fuente de gran tamaño: Los programas fuente en lenguaje ensamblador son de mayor tamaño que los programas fuente en alto nivel, ya que requieren un mayor número de instrucciones.
\ * Peligro de afectar a recursos de forma inesperada: En el lenguaje ensamblador se puede realizar lo mismo que en el lenguaje de alto nivel. La flexibilidad es útil pero peligrosa, ya que las consecuencias de los errores son mayores.
\ * Falta de portabilidad: El lenguaje ensamblador es únicos para cada arquitectura y no es posible utilizarlo para realizar programas que se vayan a utilizar en otros sistemas.
19
New cards
Lenguajes macroensambladores
A la hora de aumentar la eficiencia de la programación se recurre a la creación de instrucciones que agrupen varias instrucciones de código máquina, y que reciben el nombre de macroinstrucciones.
20
New cards
Los lenguajes que se utilizan para la ejecución de macroinstrucciones reciben el nombre de ________________
macroensambladores.
21
New cards
Se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad con que los ejecutan las máquinas.
lenguajes de alto nivel
22
New cards
Primera generación:
Lenguajes de código máquina
23
New cards
Segunda generación:
Ensambladores y macroensambladores
24
New cards
Tercera generación:
Son los lenguajes imperativos más utilizados en la actualidad como C, PASCAL, Modula, ADA
25
New cards
Cuarta generación:
\: Son lenguajes acompañados de facilidades para la programación.
26
New cards
Quinta generación:
Se elimina la necesidad de escribir instrucciones. Son lenguajes orientados a la inteligencia artificial. Entre estos lenguajes se encuentra MAGIC.
27
New cards
Clasificación por filosofía de programación
\ Imperativos o procedurales:
El programa indica qué pasos debe seguir el ordenador para realizar una tarea dada. El programa se divide en bloques de código llamados funciones o procedimientos. Las instrucciones operan sobre variables o datos que se encuentran en la memoria. C, PASCAL, FORTAN, etc.
28
New cards
Clasificación por filosofía de programación
\ Lenguajes orientados a objetos:
Permiten aplicar la filosofía de orientación a objetos. Un objeto es una entidad que consta de métodos y propiedades. En programación los métodos son funciones y procedimientos, y las propiedades son atributos y variables. C++, C#, Python, etc.
29
New cards
\ Clasificación por filosofía de programación
\ Lenguajes orientados al problema:
Han sido diseñados para resolver con eficiencia determinados tipos de problemas. Cabe destacar los lenguajes de gestión de bases de datos que permiten desarrollar de forma eficiente programas especializados en trabajar con gran cantidad de información. COBOL.
30
New cards
Clasificación según el tipo de aplicación
\ Lenguajes para aplicaciones científicas y técnicas:
Están orientados al cálculo matemático. Los programas desarrollados son rápidos, pudiendo realizar muchas operaciones por segundo y ocupan poco espacio en memoria. Suelen dar pocas facilidades al programador para crear una interfaz amigable con el usuario.
31
New cards
Clasificación según el tipo de aplicación
\ Lenguajes para aplicaciones de gestión:
Son lenguajes especializados en manejar una gran cantidad de información que se encuentra almacenada en el disco. SQL.
32
New cards
Clasificación según el tipo de aplicación
\ Lenguajes para aplicaciones de software de base y utilidades:
Sistemas operativos, compiladores, ensambladores, programas de comunicaciones, etc. Los cuales realizan tareas como el control primario del ordenador y la gestión del hardware de este. C, PASCAL, Modula 2.
33
New cards
Clasificación según el tipo de aplicación
\ \ Lenguajes para aplicaciones de inteligencia artificial:
Son lenguajes de programación que facilitan la programación de aplicaciones tales como sistemas expertos. Útiles para la inteligencia artificial. Prolog y LISP
34
New cards
Arquitectura de Von Neumann
Unidad central de procesamiento (Central Processing Unit, CPU)
La CPU se compone de varias partes:
\-Unidad de control (CU)
\- Unidad aritmético-lógica (ALU)
\- Registros
\ Memoria
Sistemas de entrada/salida
Sistemas de interconexión (buses)
35
New cards
Ejecución de instrucciones y ciclo de instrucción
Un ciclo de instrucción es el periodo que tarda la CPU en ejecutar una instrucción de lenguaje máquina. El número de ciclos máquina para la ejecución de cada instrucción del juego de instrucciones de una CPU puede ser diferente. Por tanto, uno más ciclos máquina forman un ciclo instrucción.
36
New cards
– Proceso de ejecución de instrucciones
1\. Buscar la instrucción en la memoria principal
2. Decodificar la instrucción 3. Ejecutar la instrucción 4. Almacenar resultados