PROGRAMACIÓN
Para que una computadora funcione es necesario que un programa le indique que es lo que tiene que hacer por medio de instrucciones que forman una secuencia ordenada. Estas acciones se pueden clasificar en sentencias imperativas (que indican explícitamente una acción a realizar) y aclaratorias (informan sobre una circunstancia del programa, el tipo de variable).
Un programa y sus sentencias se redactan con unos símbolos determinados( el alfabeto y los signos de puntuación) y de acuerdo con unas reglas que determinan la gramática del lenguaje.
Tradicionalmente se ha clasificado el lenguaje de programación en tres niveles:
MAQUINA: La característica principal de este lenguaje es que resulta muy engorrosa su utilización y que obliga al programador a conocer perfectamente la estructura física de la computadora, ya que diferentes plataformas tendrán diferentes lenguajes maquina. No obstante presenta la ventaja de ser ejecutable por la computadora no necesitando ningún lenguaje previo para entenderlo.
En un lenguaje maquina:
Los programas resultan poco legibles y poco elásticos ya que el formato de las instrucciones es rígido.
Los programas son poco transferibles ya que las instrucciones están íntimamente ligadas a la arquitectura de la computadora.
DE BAJO NIVEL O ENSAMBLADORES: Suponen un paso intermedio entre el lenguaje máquina directamente interpretable por la computadora y los lenguajes de alto nivel mucho más próximos al lenguaje natural. Las instrucciones en ensamblador están formadas por códigos nemotécnicos, es decir por un conjunto de caracteres (normalmente 2 ó 3) que identifican la acción que realiza una instrucción. Porque para sumar de una “ADD” normalmente una instrucción en ensamblador corresponde a una o varias instrucciones máquina. Este lenguaje permite hacer referencia a los datos por medio de direcciones de memoria simbólicas en vez de direcciones absolutas que se usan en lenguaje máquina
DE ALTO NIVEL: No obligan al programador a conocer la estructura interna de la computadora. Usan sentencias con una semántica parecida al lenguaje natural(normalmente Ingles). Los lenguajes de alto nivel permiten la inclusión de líneas de comentario que facilitan la legibilidad del código.Un programa en lenguaje de alto nivel puede ser traducido por un programa traductor, compilador o interprete para poder ser ejecutado.
PROGRAMAS TRADUCTORES: Los traductores son programas que traducen o trasladan un programa escrito en ensambladores o lenguaje de alto nivel(en definitiva en un lenguaje simbólico) a un lenguaje maquina directamente interpretable por una computadora(lenguaje maquina). Al programa inicial sobre el que actúa el traductor se le denomina programa objeto.Básicamente existen dos tipos de traductores; los interpretes y los compiladores.
COMPILADORES: Un compilador traduce un programa fuente escrito en lenguaje simbólico(fichero fuente) a un lenguaje intermedio( posiblemente ensambladores) o lenguaje maquina que pasa a formar un fichero objeto.
ANÁLISIS SINTÁCTICO: Identifica las estructuras(expresiones, sentencias aclarativas, etc...) que componen el programa. La sintaxis de un lenguaje especifica como han de escribirse las sentencias. El analizador sintáctico descompone estas sentencias en árboles que identifican las palabras reservadas que identifican los símbolos, las estructuras, las palabras reservadas, etc..Análisis semántico.
LA SEMÁNTICA: De un lenguaje de programación se refiere al significado que se da a las distintas construcciones sintácticas, en esta fase empieza a generarse el código objeto completándose las tablas generadas en fases anteriores, también se insertan las instrucciones correspondientes a las macros y se ejecutan aquellas sentencias que se han de llevar a cabo en tiempo de compilación.
OPTIMIZACIONES: El analizador semántico generalmente crea un programa en código intermedio utilizando por ejemplo la notación polaca que es una forma de evaluar las expresiones. En esta fase de optimización se mejora el código intermedio analizándose el programa en su conjunto
INTERPRETES: Un interprete es un programa que traduce un programa escrito a alto nivel a código interpretable por la computadora, sentencia a sentencia generando varias instrucciones maquina por cada instrucción en alto nivel, no se crea ningún fichero objeto y la ejecución se realiza sentencia a sentencia inmediatamente después de ser producida, las fases de análisis y las de optimización se realizan en el contexto de la sentencia y no del programa entero, por tanto se ejecuta más rápido, pero cada vez que hay que ejecutarlo hay que volver a interpretarlo
INSTRUCCIÓN
Se denomina instrucción en informática al conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta.
Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma en el conjunto de instrucciones (en inglés ISA, instruction set architecture), que también determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explícitamente en la instrucción).
Estas instrucciones del computador son las que determinan el funcionamiento de la CPU que las ejecuta. La CPU puede realizar una diversidad de funciones, que son el reflejo de la variedad de las instrucciones definidas para dicha CPU. El programador tiene un repertorio de instrucciones como medio para controlar la CPU.
TIPOS:
INSTRUCCIONES DE TRANSFERENCIA DE DATOS: Son aquellas de entrada o lectura y de salida o escritura. En el caso de las instrucciones de entrada o lectura, se lleva el dato de entrada o lectura desde la unidad de entrada a la memoria. en este tipo de instrucciones, se transfieren datos desde una localización a otra. Los pasos que se siguen para realizarlo son:
- Determinación de las direcciones de origen y destino de memoria.
- Realización de la transformación de memoria virtual a memoria real.
- Comprobación de la caché.
- Inicio del proceso de lectura/escritura en la memoria.
INSTRUCCIONES ARITMÉTICA: pueden implicar transferencia de datos antes y/o después. Realizan operaciones aritméticas de las que se encarga la ALU. Se pueden clasificar en de 1 operando (valor absoluto, negación) y 2 operandos (suma, resta).
INSTRUCCIONES LÓGICAS: al igual que las aritméticas, la ALU se encarga de realizar estas operaciones, que en este caso son de tipo lógico.
INSTRUCCIONES DE CONVERSIÓN: similares a las aritméticas y lógicas. Pueden implicar lógica especial para realizar la conversión.
INSTRUCCIONES DE TRANSFERENCIA DE CONTROL: actualizan el contador de programa (PC). Administran las llamadas/retornos a las sub rutinas, el paso de parámetros y el enlazado.
INSTRUCCIONES E/S (ENTRADA/SALIDA):administran los comandos de entrada/salida. Si hay un mapa de memoria de entrada/salida, determina la dirección de este mapa.
INSTRUCCIONES DE FLUJO DE CONTROL O DE BIFURCACIÓN Y SALTO: Las instrucciones de flujo de control son aquellas instrucciones que alteran el orden secuencial de la ejecución de un programa. También hay instrucciones que posibilitan la interrupción de la ejecución o saltar a ejecutar otro programa.
INSTRUCCIONES DE TRATAMIENTO: Se trata de las instrucciones aritmético-lógicas y las de desplazamientos. Así como suma de datos o comparaciones.
OTRAS INSTRUCCIONES: Por ejemplo, la detención del funcionamiento del computador a la espera de una acción del usuario.
No hay comentarios.:
Publicar un comentario