You are on page 1of 27

Direccin General de Educacin Superior Tecnolgica Instituto Tecnolgico de Lerma

Programacin Bsica Investigacin.

Alumno: Carrillo Pacheco Manuel Antonio

Facilitador: Ing. Berzunza Saravia Flix Romeo

26 de Enero del 2014

Indice
Introduccin Pg. 3 Lenguajes de programacin: bajo nivel, alto nivel, ensamblador, maquinapg. 4-10 Qu es un compilador?......................................................pg. 11 Qu es un traductor?.........................................................pg. 13 Qu es un sistema numrico?...........................................pg. 15 Qu es una arquitectura de computadora?........................pg. 19 Qu es un sistema operativo?...........................................pg. 22

Tipos de programacin.....pg. 24
Conclusin. .pg. 27

INTRODUCCION La carrera que estamos estudiando, tiene la ventaja de ser interdisciplinaria, al combinar la mecnica, la electrnica y la informtica, esto para ser capaces de comprender el funcionamiento de un sistema mecatronico, as como en el futuro, quiz poder; fabricar, reparar o disear este tipo de tecnologas. En el semestre anterior las materias que vimos estaban ms enfocadas a lo que era una introduccin a la parte terica y fsica de la carrera, tales como los cdigos ticos que debemos seguir y tener, el arte de hacer una investigacin, la precisin para medir todo tipo de magnitudes con un sinfn de aparatos especiales, dibujar y disear distintos tipos de piezas con ayuda de programas virtuales, as como los conocimientos qumicos y matemticos que nos ayudan a enriquecer nuestro saber y nuestras habilidades para razonar y comprender. En este semestre por lo que vi por las materias que cursaremos, profundizaremos ms en las disciplinas que conforman a carrera, siendo esta materia en particular como una introduccin al mundo de la informtica. Yo por mi parte me siento de cierta forma emocionado y preocupado a la vez, pues esto de la informtica es algo nuevo para mi, aun asi iniciamos la programacin bsica con nuestra primera tarea de investigacin y un ensayo. Espero la informacin presentada en el trabajo sea til y fcil de comprender. Gracias.

Lenguajes de programacin.
Para poder entender la clasificacin de los lenguajes de programacin, se debe comenzar por explicar que es un lenguaje de programacin, esto para un mayor entendimiento. Entonces el lenguaje de programacin es bsicamente cdigos que son interpretados por un ordenador como ordenes o instrucciones, el lenguaje base con el que trabajan la gran mayora de los sistemas informticos es el lenguaje maquina, este se basa en el sistema numrico de base dos, llamado sistema binario, en donde 0 representa una llave apagada y 1 una encendida. Las computadoras trabajan con dos tipos de pulsaciones electromagnticas, entonces el 0 en este caso representa una pulsacin de 0.3 voltios, mientras que el 1 representa 0.5 voltios. Una cadena de llaves generan lo que se conoce como instrucciones, pudiendo dar as inicio a una programacin, ya que un computador no hace nada por si solo a menos que se le ordene mediante una programacin inmediata o previa. Dado a que el lenguaje maquina es muy complejo en cuanto a su sintaxis ya que asolo se vale de 1s y 0s, una instruccin pudiese ser :11011100010010100110110001000110010, por lo tanto es difcil de recordar y crear, por ello se crean nuevos lenguaje que representan una instruccin como la anterior en letras entendibles por el hombre, es decir por ejemplo: antes lenguaje maquina la suma es igual a: 001011010, y en el lenguaje que se encarga de darle una nueva etiqueta a esa instruccin en maquina la suma es igual a "+" pero de tras fondo sigue siendo "001011010". Clasificacin Los lenguajes de programacin se clasifican por su nivel de abstraccin del procesador, en este caso la abstraccin es un principio por el cual se asla toda aquella informacin que no es resulta relevante a un determinado nivel de conocimiento.

Lenguaje de bajo nivel es el que proporciona poca o ninguna abstraccin


del microprocesador de un ordenador. Consecuentemente es fcilmente trasladado a lenguaje de mquina. En general se utiliza este tipo de lenguaje para programar controladores (drivers). Ventajas Mayor adaptacin al equipo. Posibilidad de obtener la mxima velocidad con mnimo uso de memoria. Inconvenientes Imposibilidad de escribir cdigo independiente de la mquina. Mayor dificultad en la programacin y en la comprensin de los programas.

El programador debe conocer ms de un centenar de instrucciones. Es necesario conocer en detalle la arquitectura de la mquina. Caractersticas Se trabaja a nivel de instrucciones, es decir, su programacin es al ms fino detalle. Est orientado a la mquina.

Los lenguajes de alto nivel se caracterizan por expresar los algoritmos de


una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las mquinas. En los primeros lenguajes de alto nivel la limitacin era que se orientaban a un rea especfica y sus instrucciones requeran de una sintaxis predefinida. Se clasifican como lenguajes procedimentales. Otra limitacin de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programacin para realizar las secuencias de instrucciones lgicas. Los lenguajes de muy alto nivel se crearon para que el usuario comn pudiese solucionar tal problema de procesamiento de datos de una manera ms fcil y rpida. Por esta razn, a finales de los aos 1950 surgi un nuevo tipo de lenguajes de programacin que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera generacin" o "de alto nivel", en contraposicin a los "de bajo nivel" o "de nivel prximo a la mquina". Ventajas La programacin en un lenguaje de alto nivel tiene ciertas ventajas: Genera un cdigo ms sencillo y comprensible. Escribir un cdigo vlido para diversas mquinas y, posiblemente, sistemas operativos. Inconvenientes Reduccin de velocidad al ceder el trabajo de bajo nivel a la mquina. Algunos requieren que la mquina cliente posea una determinada plataforma. Objetivos Lograr independencia de la mquina, pudiendo utilizar un mismo programa en diferentes equipos con la nica condicin de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la mquina que se trate. Adems, no se necesita conocer el hardware especfico de dicha mquina.

Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma ms sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje mquina, ya que se utilizan palabras (en ingls) en lugar de cadenas de smbolos sin ningn significado aparente. Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemticas, manejo de tablas, etc., que figuran en una especie de librera del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.

ENSAMBLADORES. Ensamblador es un programa que se utiliza para convertir cdigo fuente (lenguaje Assembly) a cdigo objeto (lenguaje mquina). El lenguaje Assembly se creo con el propsito de facilitar la escritura de programas ya que el lenguaje binario es bastante complicado y difcil de entender, este lenguaje usa referencias simblicas para evitar clculos tediosos. El lenguaje Assembly sigue siendo utilizado para varios dispositivos programables como los microcontroladores.

Caractersticas del lenguaje Assembly

Utilizan menos recursos del sistema. No son portables, ya que un cdigo hecho para un microprocesador tendra que modificarse mucho para usarse en otra computadora, aunque tuviera el mismo microprocesador.

Se lleva gran tiempo en codificar. Son difciles de hacer ya que se parecen al lenguaje mquina. Se tiene un control muy preciso de los microprocesadores. Se puede controlar el tiempo de su ejecucin e impedir que se interrumpa su proceso. Los ensambladores han estado presentes desde 1950, y han avanzado hacia lo que se conoce como compilador. Los ensambladores han evolucionado y se han creado uno partir del otro, con las cualidades que tenia el ensamblador anterior y con mejoras muy notables: ensambladores bsicos-> ensambladores modulares-> Ensambladores modulares de 32-bits. CODIGO MAQUINA. Fue el primer lenguaje utilizado en la programacin para las primeras computadoras, pero dej de utilizarse por su dificultad y complicacin, siendo sustituido por otros lenguajes ms fciles de aprender y utilizar, y que adems reducen la posibilidad de cometer errores. La informacin que hace que el hardware de la computadora realice una determinada actividad de llama instruccin, por consiguiente una instruccin es un conjunto de unos y ceros, las instrucciones as formadas equivalen a acciones elementales de la mquina, por lo que al conjunto de dichas instrucciones que son interpretadas directamente por la mquina se denomina lenguaje mquina. El lenguaje mquina es el nico lenguaje que puede ejecutar una computadora, es especfico en cada arquitectura, es un cdigo que es interpretado directamente por el microprocesador, est compuesto por un conjunto de instrucciones ejecutadas en secuencia que representan acciones que la mquina podr tomar. El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos nicos smbolos 0 y 1, denominados bits; fsicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una informacin se utilizan una serie de unos y ceros cuyo conjunto indica dicha informacin. Todo cdigo fuente en ltima instancia debe llevarse a un lenguaje mquina mediante el proceso de compilacin o interpretacin para que la computadora pueda ejecutarlo.

Las instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos partes, el comando u operacin, que dice a la computadora cul es la funcin que va a realizar y la instruccin es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular; el nmero de operandos de una instruccin vara en las distintas computadoras, una instruccin en lenguaje mquina puede, por ejemplo, representarse de la siguiente forma: 011011001010010011110110 Esta secuencia es fcilmente ejecutada por la computadora, pero es de difcil interpretacin, siendo an ms difcil la interpretacin de un programa escrito de esta forma, esta dificultad hace que los errores sean frecuentes y la correccin de los mismos costosa, cuando no imposible, al igual que la verificacin y modificacin de los programas. Como se puede observar, estas instrucciones sern fciles de leer por la computadora y difciles por un programador, y viceversa, esta razn hace difcil escribir programas en cdigo o lenguaje a mquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea ms fcil de escribir y leer por el programador. Para evitar la tediosa tarea de escribir programas en lenguaje mquina, se han diseado otros lenguajes de programacin que facilitan la escritura y posterior ejecucin de los programas. EJEMPLO 0011 0001 1010 0001 01 A1 1000 1001 1001 1010 FF 9A 0011 1010 1001 1100 3A 9C 0111 0100 0111 0011 74 F0 1110 1001 0010 1100 C8 30 Las ventajas de esto son evidentes, ya que para el hombre resulta ms fcil manipular grupos de caracteres y la traduccin se hara de manera automtica. Por ejemplo, se podra escribir: ALMACENAR 11010110, 00011101 Esto indicara que el contenido de la posicin 11010110 haba que pasarlo a la posicin 00011101 si se sabe que al grupo alfabtico ALMACENAR le corresponde la secuencia de bits 11110101. La mquina traducira la anterior instruccin como: 11110101 11010110 00011101

A los programas que permiten pasar del programa escrito de esta manera (programa fuente, en ensamblador) al lenguaje mquina tambin se les denomina normalmente ensambladores. Estos traductores, como ya se ha dicho, se fueron complicando cada vez ms para que la labor del programador fuera ms fcil, incluyendo las denominadas directivas del ensamblador, que son rdenes o informacin que el programador da al traductor, no instrucciones de lenguaje mquina. El cdigo mquina, o lenguaje de mquina, est formado por instrucciones sencillas, que dependiendo de la estructura del procesador pueden especificar:

Registros especficos para operaciones aritmticas, direccionamiento o control de funciones. Posiciones de memoria especficas (offset). Modos de direccionamiento usados para interpretar operando.

Las instrucciones de mquina o 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. Las operaciones ms complejas se realizan combinando estas instrucciones sencillas, que pueden ser ejecutadas secuencialmente o mediante instrucciones de control de flujo. Las operaciones disponibles en la mayora de los conjuntos de instrucciones incluyen:

mover llenar un registro con un valor constante mover datos de una posicin de memoria a un registro o viceversa escribir y leer datos de dispositivos computar o sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de ellos o en otro registro o realizar operaciones binarias, incluyendo operaciones lgicas (AND/OR/XOR/NOT) o comparar valores entre registros (mayor, menor, igual) afectar el flujo del programa o saltar a otra posicin en el programa y ejecutar instrucciones all o saltar si se cumplen ciertas condiciones (IF) o saltar a otra posicin, pero guardar el punto de salida para retornar (CALL, llamada a subrutinas)
o o o

Las instrucciones de un lenguaje de programacin se pueden clasificar en:

Instrucciones de transferencias 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. Si por el contrario es una instruccin de salida o escritura, se lleva el dato de la memoria a la unidad de salida. Instrucciones de tratamiento: Se trata de las instrucciones aritmtico-lgicas y las de desplazamientos. As como suma de datos, comparaciones. Instrucciones de flujo de control o de bifurcacin y salto: Las instrucciones de flujo de control son aquellas instrucciones que alteran el orden secuencial de la ejecucin de un programa. Tambin hay instrucciones que posibilitan la interrupcin de la ejecucin o saltar a ejecutar otro programa. Cuando termina cualquiera de estas instrucciones, el programa contina ejecutndose desde el punto en el que se interrumpi.

Direccionamiento de lenguaje maquina: Es la forma en cmo se accede a la memoria, recordamos que un programa no puede ejecutarse sino se encuentra en memoria principal, la forma de acceder a la memoria depende del microprocesador, pero en general existen dos tipos de direccionamiento: directo e indirecto.

El direccionamiento directo tambin recibe el nombre de direccionamiento absoluto y el acceso a las direcciones se hace de manera directa. El direccionamiento indirecto tambin recibe el nombre de direccionamiento relativo y se basa a partir de una direccin genrica, generalmente el inicio del programa.

Para acceder a una direccin relativa se suma a la direccin base el nmero de espacios de memorias necesarias, e direccionamiento relativo hace a los programas relocalizables e independientes, si la direccin base es el inicio de la memoria fija el direccionamiento pasa a ser un variante de direccionamiento absoluto. Ventajas del Lenguaje Mquina

Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin.

Desventajas del Lenguaje Mquina


Dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU).

Qu es un compilador? Cuando hablamos de programacin, hemos mencionado que existen dos Cdigos fundamentales a la hora de crear aplicaciones, programas o corregir errores presentes en dicha tarea, teniendo por un lado al Cdigo Fuente, que es el que se encuentra en unLenguaje de Programacin entendible por los usuarios, y por otro lado el Cdigo Objeto, que es la traduccin del mismo para que todas las rdenes que han sido redactadas puedan ser entendidas por el dispositivo que las vaya a ejecutar. La tarea de traduccin de un Cdigo Fuente, hacia el producto final que ser el Cdigo Objeto, est dada por la accin de Compilar, para lo cual se requiere de una aplicacin que es conocida justamente como Compilador, el cual describiremos a continuacin. Bsicamente, el Compilador consiste en una aplicacin que tiene como premisa fundamental la Traduccin del lenguaje especfico de programacin (tambin conocido como Lenguaje de Alto Nivel) hacia otro que es solamente comprensible por el equipo, que se encargar de interpretarlo llevndolo a un sistema binario que se basa en la transmisin o no-transmisin de energa elctrica (Lenguaje de Bajo Nivel) Para poder realizar esta transformacin, el Compilador debe realizar un anlisis de qu es lo que se ha escrito en el Lenguaje de Programacin establecido, a travs de tres criterios fundamentales, cuyo conjunto es conocido como Front End:

Lxico: Que el lenguaje sea correctamente aplicado, con palabras preestablecidas por el mismo Sintctico: Que la programacin est ordenada, sin fallas en sus variables Semntico: Criterio en el cual se verifica que el resultado de lo que ha sido programado tiene una correlacin con la orden que ha querido ser ejecutada Realizado esto, comienza una etapa en la cual se sintetiza el Cdigo Objeto, teniendo sta tres pasos fundamentales, contando adems con un asistente que nos informa de todos los Errores que hayan sido encontrados y que requieren una posterior enmienda, adems de fallas en la traduccin, teniendo este proceso el nombre de Back End: Cdigo Intermedio: Se genera un Cdigo Objeto preliminar en base al Lenguaje de Alto Nivel

Optimizacin: El cdigo anteriormente creado en forma previa al resultado final es analizado y mejorado en pos de mayor rendimiento y menos errores

Generacin: Finalmente, en esta etapa se da lugar a la creacin de un Cdigo Objeto Realizado esto, se obtiene finalmente el Lenguaje de Bajo Nivel que ser posteriormente interpretado por el ordenador y ejecutado por los distintos dispositivos del ordenador.

Qu es un traductor? Un traductor es cualquier programa que toma como entrada un texto escrito en un lenguaje, llamado fuente y da como salida otro texto en un lenguaje, denominado objeto.

En el caso de que el lenguaje fuente sea un lenguaje de programacin de alto nivel y el objeto sea un lenguaje de bajo nivel (ensamblador o cdigo de mquina), a dicho traductor se le denomina compilador. Un ensamblador es un compilador cuyo lenguaje fuente es el lenguaje ensamblador. Un intrprete no genera un programa equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto nivel y la traduce al cdigo equivalente y al mismo tiempo lo ejecuta. Histricamente, con la escasez de memoria de los primeros ordenadores, se puso de moda el uso de intrpretes frente a los compiladores, pues el programa fuente sin traducir y el intrprete juntos daban una ocupacin de memoria menor que la resultante de los compiladores. Por ello los primeros ordenadores personales iban siempre acompaados de un intrprete de BASIC (Spectrum, Commodore VIC-20, PC XT de IBM, etc.). La mejor informacin sobre los errores por parte del compilador as como una mayor velocidad de ejecucin del cdigo resultante hizo que poco a poco se impusieran los compiladores. Hoy en da, y con el problema de la memoria prcticamente resuelto, se puede hablar de un gran predominio de los compiladores frente a los intrpretes, aunque intrpretes como los incluidos en los navegadores de Internet para interpretar el cdigo JVM de Java son la gran excepcin. Ventajas de compilar frente a interpretar: Se compila una vez, se ejecuta n veces. En bucles, la compilacin genera cdigo equivalente al bucle, pero interpretndolo se traduce tantas veces una lnea como veces se repite el bucle. Ventajas del intrprete frente al compilador: Un intrprete necesita menos memoria que un compilador. En principio eran ms abundantes dado que los ordenadores tenan poca memoria. Permiten una mayor interactividad con el cdigo en tiempo de desarrollo. Un compilador no es un programa que funciona de manera aislada, sino que necesita de otros programas para conseguir su objetivo: obtener un programa ejecutable a partir de un programa fuente en un lenguaje de alto nivel. Algunos de esos programas son el preprocesador, el linker, el depurador y el ensamblador. El preprocesador se ocupa (dependiendo del lenguaje) de incluir ficheros, expandir macros, eliminar comentarios, y otras tareas similares. El linker se encarga de

construir el fichero ejecutable aadiendo al fichero objeto generado por el compilador las cabeceras necesarias y las funciones de librera utilizadas por el programa fuente. El depurador permite, si el compilador ha generado adecuadamente el programa objeto, seguir paso a paso la ejecucin de un programa. Finalmente, muchos compiladores, en vez de generar cdigo objeto, generan un programa en lenguaje ensamblador que debe despus convertirse en un ejecutable mediante un programa ensamblador.

Qu es un sistema numrico?
Para que la PC pueda procesar la informacin es necesario que sta se encuentre en celdas especiales llamadas registros. Los registros son conjuntos de 8 o 16 flip-flops (basculadores o biestables). Un flip-flop es un dispositivo capaz de almacenar dos niveles de voltaje, uno bajo, regularmente de 0.5 volts y otro alto comunmente de 5 volts. El nivel bajo de energa en el flip-flop se interpreta como apagado o 0, y el nivel alto como prendido o 1. A estos estados se les conoce usualmente como bits, que son la unidad mas pequea de informacin en una computadora. A un grupo de 16 bits se le conoce como palabra, una palabra puede ser dividida en grupos de 8 bits llamados bytes, y a los grupos de 4 bits les llamamos nibbles. Sistemas numricos El sistema numrico que utilizamos a diario es el sistema decimal, pero este sistema no es conveniente para las mquinas debido a que la informacin se maneja codificada en forma de bits prendidos o apagados; esta forma de codificacin nos lleva a la necesidad de conocer el clculo posicional que nos permita expresar un nmero en cualquier base que lo necesitemos. Es posible representar un nmero determinado en cualquier base mediante la siguiente formula: Donde n es la posicin del dgito empezando de derecha a izquierda y numerando a partir de cero. D es el dgito sobre el cual operamos y B es la base numrica empleada. Convertir nmeros binarios a decimales Trabajando en el lenguaje ensamblador nos encontramos con la necesidad de convertir nmeros del sistema binario, que es el empleado por las computadoras, al sistema decimal utilizado por las personas. El sistema binario est basado en unicamente dos condiciones o estados, ya sea encendido (1) o apagado (0), por lo tanto su base es dos. Para la conversin podemos utilizar la formula de valor posicional: Por ejemplo, si tenemos el numero binario 10011, tomamos de derecha a izquierda cada dgito y lo multiplicamos por la base elevada a la nueva posicin que ocupan:

Binario: 1 1 0 0 1 Decimal:1*2^0+1*2^1+0*2^2+0*2^3+1*2^4 = 1 + 2 + 0 + 0 + 16 = 19 decimal. El caracter ^ es utilizado en computacin como smbolo de potenciacin y el caracter * se usa para representar la multiplicacin. Convertir nmeros decimales a binarios Existen varios mtodos de conversin de nmeros decimales a binarios; aqu solo se analizar uno. Naturalmente es mucho mas fcil una conversin con una calculadora cientfica, pero no siempre se cuenta con ella, as que es conveniente conocer por lo menos una forma manual para hacerlo. El mtodo que se explicar utiliza la divisin sucesiva entre dos, guardando el residuo como dgito binario y el resultado como la siguiente cantidad a dividir. Tomemos como ejemplo el nmero 43 decimal. 43/2 = 21 y su residuo es 1 21/2 = 10 y su residuo es 1 10/2 = 5 y su residuo es 0 5/2 = 2 y su residuo es 1 2/2 = 1 y su residuo es 0 1/2 = 0 y su residuo es 1 Armando el nmero de abajo hacia arriba tenemos que el resultado en binario es 101011 Sistema hexadecimal En la base hexadecimal tenemos 16 dgitos que van del 0 al 9 y de la letra A hasta la F (estas letras representan los nmeros del 10 al 15). Por lo tanto, contamos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. La conversin entre numeracin binaria y hexadecimal es sencilla. Lo primero que se hace para una conversin de un nmero binario a hexadecimal es dividirlo en grupos de 4 bits, empezando de derecha a izquierda. En caso de que el ltimo grupo (el que quede mas a la izquierda) sea menor de 4 bits se rellenan los faltantes con ceros.

Tomando como ejemplo el nmero binario 101011 lo dividimos en grupos de 4 bits y nos queda: 10; 1011 Rellenando con ceros el ltimo grupo (el de la izquierda): 0010; 1011 Despus tomamos cada grupo como un nmero independiente y consideramos su valor en decimal: 0010 = 2; 1011 = 11 Pero como no podemos representar este nmero hexadecimal como 211 porque sera un error, tenemos que sustituir todos los valores mayores a 9 por su respectiva representacin en hexadecimal, con lo que obtenemos: 2BH (Donde la H representa la base hexadecimal) Para convertir un nmero de hexadecimal a binario solo es necesario invertir estos pasos: se toma el primer dgito hexadecimal y se convierte a binario, y luego el segundo, y as sucesivamente hasta completar el nmero. Cdigo ASCII ASCII generalmente se pronuncia "aski", es un acrnimo de American Standard Code for Information Interchange. Este cdigo asigna a las letras del alfabeto, a los dgitos decimales del 0 al 9 y a varios smbolos adicionales un nmero binario de 7 bits (ponindose el bit 8 en su estado de apagado o 0). De esta forma cada letra, dgito o caracter especial ocupa un byte en la memoria de la computadora. Podemos observar que este mtodo de representacin de datos es muy ineficiente en el aspecto numrico, ya que en formato binario nos basta un solo byte para representar numeros de 0 a 255, en cambio con el cdigo ASCII un byte puede representar unicamente un dgito. Debido a esta ineficiencia, el cdigo ASCII es principalmente utilizado en la memoria para representar texto. Metodo BCD BCD es un acrnimo de Binary Coded Decimal.

En esta notacin se utilizan grupos de 4 bits para representar cada dgito decimal del 0 al 9. Con este mtodo podemos representar dos dgitos por byte de informacin. An cuando este mtodo es mucho mas prctico para representacin de nmeros en la memoria en comparacin al ASCII, todava se queda por debajo del binario, ya que con un byte en el mtodo BCD solo podemos representar dgitos del 0 al 99, en cambio, en formato binario podemos representar todos los dgitos desde 0 hasta 255. Este formato es utilizado principalmente para representar nmeros muy grandes en aplicaciones mercantiles ya que facilita las operaciones con los mismos evitando errores de redondeo. Representacin de punto flotante Esta representacin esta basada en la notacin cientfica, esto es, representar un nmero en dos partes: su mantisa y su exponente. Poniendo como ejemplo el nmero 1234000, podemos representarlo como 1.123*10^6, en esta ltima notacin el exponente nos indica el nmero de espacios que hay que mover el espacio hacia la derecha para obtener el resultado original. En caso de que el exponente fuera negativo nos estara indicando el nmero de espacios que hay que recorrer el punto decimal hacia la izquierda para obtener el original.

Qu es una arquitectura de computadoras?


La arquitectura de computadoras es el diseo conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripcin funcional de los requerimientos y las implementaciones de diseo para varias partes de una computadora, con especial inters en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.

Tambin suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras segn los requerimientos de funcionalidad, rendimiento y costo. El ordenador recibe y enva la informacin a travs de los perifricos por medio de los canales. La UCP es la encargada de procesar la informacin que le llega al ordenador. El intercambio de informacin se tiene que hacer con los perifricos y la UCP. Todas aquellas unidades de un sistema exceptuando la UCP se denomina perifrico, por lo que el ordenador tiene dos partes bien diferenciadas, que son: la UCP (encargada de ejecutar programas y que est compuesta por la memoria principal, la Unidad aritmtico lgica(UAL) y la Unidad de Control) y los perifricos (que pueden ser de entrada, salida, entrada-salida y comunicaciones). La implantacin de instrucciones es similar al uso de una serie de desmontaje en una fbrica de manufacturacin. En las cadenas de montaje, el producto pasa a travs de muchas etapas de produccin antes de tener el producto desarmado. Cada etapa o segmento de la cadena est especializada en un rea especfica de la lnea de produccin y lleva a cabo siempre la misma actividad. Esta tecnologa es aplicada en el diseo de procesadores eficientes. A estos procesadores se les conoce como pipeline processors. Estos estn compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o informacin para uso externo. Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos: Almacenamiento de operativos en la UPC: dnde se ubican los operadores aparte de la substractora informativa (SI)

Nmero de operandos explcitos por instruccin: cuntos operandos se expresan en forma explcita en una instruccin tpica. Normalmente son 0, 1, 2 y 3. Posicin del operando: Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la UPC. Cmo se especifica la direccin de memoria (modos de direccionamiento disponibles). Operaciones: Qu operaciones estn disponibles en el conjunto de instrucciones. Tipo y tamao de operandos y cmo se especifican.

Almacenamiento de operandos en la UPC La diferencia bsica est en el almacenamiento interno de la UPC. Las principales alternativas son: Acumulador. Conjunto de registros. Memoria

Caractersticas: En una arquitectura de acumulador un operando est implcitamente en el acumulador siempre leyendo e ingresando datos. (Ej.: calculadora Standard -estndar-) En la arquitectura de pila no es necesario nombrar a los operandos ya que estos se encuentran en el tope de la pila. (Ej.: calculadora de pila HP) La Arquitectura de registros tiene slo operandos explcitos (es aquel que se nombra) en registros o memoria. Ventajas de las arquitecturas Pila: Modelo sencillo para evaluacin de expresiones (notacin polaca inversa). Instrucciones cortas pueden dar una buena densidad de cdigo. Acumulador: Instrucciones cortas. Minimiza estados internos de la mquina (unidad de control sencilla). Registro: Modelo ms general para el cdigo de instrucciones parecidas. Automatiza generacin de cdigo y la reutilizacin de operandos. Reduce el trfico a memoria. Una computadora actualmente tiene como estndar 32 registros. El acceso a los datos es ms rpido, y veloz.

Desventajas de las arquitecturas

Pila: A una pila no se puede acceder aleatoriamente. Esta limitacin hace difcil generar cdigo eficiente. Tambin dificulta una implementacin eficiente, ya que la pila llega a ser un cuello de botella es decir que existe dificultad para la transferencia de datos en su velocidad mk. Acumulador: Como el acumulador es solamente almacenamiento temporal, el trfico de memoria es el ms alto en esta aproximacin. Registro: Todos los operadores deben ser nombrados, conduciendo a instrucciones ms largas.

Qu es un sistema operativo? Definicin de Sistema Operativo El sistema operativo es el programa (o software) ms importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas bsicas, tales como reconocimiento de la conexin del teclado, enviar la informacin a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos perifricos tales como impresoras, escner, etc. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un polica de trfico, se asegura de que los programas y usuarios que estn funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo tambin es responsable de la seguridad, asegurndose de que los usuarios no autorizados no tengan acceso al sistema. Clasificacin de los Sistemas Operativos Los sistemas operativos pueden ser clasificados de la siguiente forma: Multiusuario: Permite que dos o ms usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo. Multiprocesador: soporta el abrir un mismo programa en ms de una CPU. Multitarea: Permite que varios programas se ejecuten al mismo tiempo. Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo. Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.

Cmo funciona un Sistema Operativo Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la eleccin del sistema operativo determina en gran medida las aplicaciones que puedes utilizar. Los sistemas operativos ms utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que tambin se utilizan, como por ejemplo Linux. Cmo se utiliza un Sistema Operativo

Un usuario normalmente interacta con el sistema operativo a travs de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar ypegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por una parte del sistema operativo llamada procesador de comandos o intrprete de la lnea de comandos. Las interfaces grficas permiten que utilices los comandos sealando y pinchando en objetos que aparecen en la pantalla.

TIPOS DE PROGRAMACION Existen varias clases de programacin, dependiendo de los mtodos utilizados y las tcnicas empleadas. Los tipos o tcnicas de programacin son bastante variados, aunque puede que muchos de los lectores slo conozcan una metodologa para realizar programas. En la mayora de los casos, las tcnicas se centran en programacin modular y programacin estructurada, pero existen otros tipos de programacin. Los explicaremos a lo largo del artculo. Programacin estructurada (PE) La programacin estructurada esta compuesta por un conjunto de tcnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuracin y mantenimiento del mismo. Esta programacin estructurada utiliza un nmero limitado de estructuras de control, reduciendo as considerablemente los errores. Esta tcnica incorpora:

Diseo descendente (top-dow): el problema se descompone en etapas o estructuras jerrquicas. Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras ms simples capaces de ser resueltas con mayor facilidad. Estructuras bsicas: existen tres tipos de estructuras bsicas: Estructuras secunciales: cada accin sigue a otra accin secuencialmente. La salida de una accin es la entrada de otra. Estructuras selectivas: en estas estructuras se evalan las condiciones y en funcin del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lgicas.

Estructuras repetitivas: son secuencias de instrucciones que se repiten un nmero determinado de veces. Las principales ventajas de la programacin estructurada son:

Los programas son mas fciles de entender Se reduce la complejidad de las pruebas Aumenta la productividad del programador Los programas queden mejor documentados internamente. Un programa esta estructurado si posee un nico punto de entrada y slo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por ltimo, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos. Programacin modular En la programacin modular consta de varias secciones dividas de forma que interactan a travs de llamadas a procedimientos, que integran el programa en su totalidad. En la programacin modular, el programa principal coordina las llamadas a los mdulos secundarios y pasa los datos necesarios en forma de parmetros. A su vez cada modulo puede contener sus propios datos y llamar a otros mdulos o funciones. Programacin orientada a objetos (POO) Se trata de una tcnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilizacin de los objetos.

El elemento principal de la programacin orientada a objetos es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento. El polimorfismo y la herencia son unas de sus principales caractersticas y por ello dedicaremos ms adelante un artculo exclusivamente a tratar estos dos trminos. En DesarrolloWeb.com hemos publicado anteriormente una explicacin de lo que es la programacin orientada a objetos. Programacin concurrente Este tipo de programacin se utiliza cuando tenemos que realizar varias acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultnea. Se trata de una programacin ms lenta y laboriosa, obteniendo unos resultados lentos en las acciones. Programacin funcional Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones. Programacin lgica Se suele utilizar en la inteligencia artificial y pequeos programas infantiles. Se trata de una programacin basada en el clculo de predicados (una teora matemtica que permite lograr que un ordenador basndose en hecho y reglas lgicas, pueda dar soluciones inteligentes).

Conclusin. Como podemos observar, hay muchos nuevos conceptos que debemos analizar para poder tomar la materia de programacin y en consecuencia, poder programar algo, asi como tambin conceptos no muy nuevos que profundizaremos en cuanto a su aplicacin y/o composicin.
Gracias a esto pude saber que darle ordenes a una computadora no es tan simple como pareciera, pues el lenguaje que entiende es muy limitado y hay que poder escribir nuestras ordenes de forma que el ordenador las comprenda y las realice. Retomamos los estudios de secundaria cuando vimos el sistema binario, ahora veremos una aplicacin practica de este. En fin, el mundo de la informtica es muy amplio y hasta cierto punto complejo, puesto que a diferencia de las ciencias naturales, todo el campo de estudios de la informtica fue diseado y creado por el ingenio humano espero el trabajo haya sido de su agrado y sea til en el futuro.

You might also like