Lenguajes, niveles y máquinas virtuales

Lenguajes

Subtopic

Niveles de lenguajes

Expresar algoritmos
adecuados

interacción
máquina-programador

las necesidades

programador

usuario

Dividirse en niveles

Lenguaje Máquina

Circuitos
microprogramables

conjunto de instrucciones

Acciones de
máquina

De bajo nivel

Control directo

el hardware

Ensamblador

De alto nivel

expresar algoritmos

maxima flexibilidad

Lenguaje neutral

COBOL

C

Fortran

Máquinas virtuales

Un software que simula un sistema de computación y puede ejecutar programas como si fuese una computadora real

Dos tipos de máquinas virtuales

De sistema

Emulan un ordenador completo y pueden ejecutar un sistema operativo diferente al de la máquina real donde está se ejecuta

Disco duro, memoria, tarjeta gráfica y demás componentes de hardware, aunque todos ellos son virtuales.

En el hipervisor, el host o el anfitrión

Un hipervisor o monitor de máquina virtual es una capa de software para realizar una virtualización de hardware que permite utilizar, al mismo tiempo, diferentes sistemas operativos en una misma computadora.

El término host o anfitrión se refiere a las computadoras u otros dispositivos conectados a una red que proveen y utilizan servicios de ella.

De proceso

Solo ejecutan un proceso concreto, como una aplicación

Se emplean a la hora de desarrollar aplicaciones para diversas plataformas

LENGUAJES DE PROGRAMACIÓN

Definición

Caracteristicas

Claro, expresivo, sencillo, natural, compatible y eficiente

Sintaxis y semántica

SINTAXIS

Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL ("Job Control Languages")

SEMÁNTICA

Compiladores

traducen los símbolos de un lenguaje de programación a su equivalencia escrito en lenguaje máquina (proceso conocido como compilar). Por último, se obtiene un programa ejecutable.

Es un idioma artificial para expresar instrucciones que puedan ejecutar las maquinas

Propósito

Lenguajes de propósito general

Aptos para todo tipo de tareas, Ejemplo: "C"

Lenguajes de propósito especifico

Hechos para un objetivo muy concreto, Ejemplo: Csound (para crear ficheros de audio)

Lenguajes de programación de sistemas

Diseñado para realizar sistemas operativos o drivers, Ejemplo: C

Lenguajes de Script

Para realizar tareas varias de control y auxiliares

Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL ("Job Control Languages")

Antecedentes

Profesor de matemáticas e inventor en la universidad de Cambridge, Inglaterra, a mediados del siglo XIX, Charles Babbage fue el primero en concebir la idea de un lenguaje de programación, al predecir varias de las teorías en las que se basan las computadoras actuales.

Babbage desarrolló la idea de una máquina analítica programable que, por limitaciones tecnológicas de su época, no pudo ser construida. Junto con él, su colaboradora Ada Lovelace es considerada como la primera programadora de la historia

Las técnicas empleadas por Babbage y Ada fueron seguidas por los primeros programadores de computadoras, quienes se valieron de tarjetas perforadas para introducir sus programas en las computadoras.

En 1823, se aprobó el proyecto de construcción de una máquina de diferencias, para realizar sumas de forma repetitiva

Unidad de entrada
Mediante la cual se insertaban las tarjetas perforadas para introducir las instrucciones y datos en la máquina

Unidad de memoria
Almacenaba los datos y resultados intermedios.

Unidad de control
Regulaba la secuencia de ejecución de las instrucciones.

Unidad aritmético-lógica
Realizaba las operaciones matemáticas y lógicas.

Unidad de salida
Entregaba los resultados obtenidos por los procesos internos de la máquina.

Clasificación

Subtopic