Sie sind auf Seite 1von 28

Programacin Unidad I

INSTITUTO TECNOLGICO DE VERACRUZ


ALVARADO CONTRERAS MIGUEL JESS E09021044 INTRODUCCIN A LA COMPUTACIN INGENIERA MECNICA PROGRAMACIN PERIODO ENE-JUN 2012
1

Programacin Unidad I ndice.


1. Introduccin a la computacin... .3 1.1 Breve resea de la computacin..............3 1.2 Impacto de las computadoras en la sociedad..5 1.3 Definiciones 5 1.3.1 Lenguaje de alto nivel, bajo nivel, ensamblador y mquina.............5 1.3.2 Compilador...10 1.3.3 Traductor..11 1.3.4 Sistemas Numricos..12 1.3.5 Arquitectura de computadoras15 1.3.6 Sistemas operativos...17 1.4 Descripcin de tipos de programacin.. 20 1.4.1 Programacin estructurada.20 1.4.2 Programacin orientada a objetos..21 1.4.3 Programacin de descripcin de hardware...21

Programacin Unidad I
1.5 Lenguajes de programacin.22 Bibliografa.. ..26

1. INTRODUCCIN A LA COMPUTACIN.
1.1
BREVE RESEA DE LAS COMPUTACIN.

a computacin es el estudio de los fundamentos tericos de la informacin que procesan las computadoras, y las distintas implementaciones en forma de sistemas computacionales. Puede usarse como sinnimo de informtica. Las computadoras son dispositivos compuestos por una parte fsica (hardware) y una que no lo es (software) que en conjunto forman al sistema que llamamos computadora u ordenador; que es capaz de realizar multifunciones y diversas tareas a travs del procesamiento de datos de entrada que por un proceso ya prestablecido en el software que los transforma en datos de salida o acciones que al usuario le interesa, la parte fsica hardware es la cual recibe los datos de entrada.

Primera Generacin (1950-1959)

Programacin Unidad I
Las computadoras de la primera Generacin emplearon bulbos para procesar informacin. Los operadores ingresaban los datos y programas en cdigo especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rpidamente, sobre el cual un dispositivo de lecto-escritura colocaba marcas magnticas. Esas computadoras de bulbos eran mucho ms grandes y generaban ms calor que los modelos contemporneos. Eckert y Mauchly contribuyeron al desarrollo de computadoras de la Primera Generacin formando una compaa privada y construyendo UNIVAC I. La IBM tena el monopolio de los equipos de procesamiento de datos a base de tarjetas perforadas en 1950. Comenz entonces a construir computadoras electrnicas y su primera entrada fue con la IBM 701 en 1953.

Segunda Generacin (1959-1964) El descubrimiento del transistor hizo posible la entrada de esta nueva generacin de computadoras, ms rpidas, ms pequeas y con menores necesidades de ventilacin. Sin embargo el costo segua siendo excesivo. Las computadoras de la segunda generacin tambin utilizaban redes de ncleos magnticos en lugar de tambores giratorios para el almacenamiento primario. Estos ncleos contenan pequeos anillos de material magntico, enlazados entre s, en los cuales podan almacenarse. Los programas escritos para una computadora podan transferirse a otra con un mnimo esfuerzo. Las computadoras de la 2da Generacin eran sustancialmente ms pequeas y rpidas que las de bulbos. Las empresas comenzaron a aplicar las computadoras atareas de almacenamiento de registros, como manejo de inventarios, nmina y contabilidad. La marina de E.U. utiliz las computadoras de la Segunda Generacin para crear el primer simulador de vuelo.

Tercera Generacin (1964-1971)


4

Programacin Unidad I
Las computadoras de la tercera generacin emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrnicos, en una integracin en miniatura. Las computadoras nuevamente se hicieron ms pequeas, ms rpidas, desprendan menos calor y eran energticamente ms eficientes. Los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos .La IBM 360 una de las primeras computadoras comerciales que us circuitos integrados, poda realizar tanto anlisis numricos como administracin procesamiento de archivos. Las computadoras trabajaban a tal velocidad que proporcionaban la capacidad de correr ms de un programa de manera simultnea (multiprogramacin). Las minicomputadoras se desarrollaron durante la segunda generacin pero alcanzaron su mayor auge entre 1960 y 1970.

Cuarta Generacin (1971 a la fecha) Aqu se destaca: el reemplazo de las memorias con ncleos magnticos, por las de chips de silicio y la colocacin de muchos ms componentes en un chip: producto de la micro miniaturizacin de los circuitos electrnicos. El tamao reducido del microprocesador y de chips hizo posible la creacin de las computadoras personales (PC Personal Computer). Las tecnologas LSI (Integracin a gran escala) y VLSI (integracin a muy gran escala) permiten que cientos de miles de componentes electrnicos se almacenen en un chip.

1.2

IMPACTO

DE

LAS

COMPUTADORAS

EN

LA

SOCIEDAD.
El mundo moderno le debe parte de su evolucin a las computadoras, ya que a travs de ellas se ha brindado un mecanismo el cual permite que los niveles de desarrollo tanto econmico, electrnico como cultural se
5

Programacin Unidad I
acerquen de forma ms rpida. Las computadoras estn en nuestras vidas, se comienza a notar una dependencia y por lo tanto comienza a surgir una unin necesaria para desarrollar nuestras actividades y para lograr nuestros objetivos. La tecnologa de la informacin es una de las disciplinas que rpidamente ha pasado del plano estrictamente cientfico al mundo cotidiano. Cada vez y con mayor frecuencia el hombre incorpora a su vida cotidiana una serie de instrumentos de naturaleza electrnica.

1.3

DEFINICIONES.

1.3.1

LENGUAJE DE ALTO NIVEL, BAJO NIVEL, ENSAMBLADOR Y MQUINA.


Un lenguaje de programacin de alto nivel se caracteriza por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las mquinas. Los lenguajes de alto nivel logran la independencia del tipo de mquina y se aproximan al lenguaje natural. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso. Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros: 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.

Programacin Unidad I
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. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC).

Ventajas e inconvenientes 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. Principales lenguajes de alto nivel:
Ada

ALGOL BASIC C++ C# COBOL Fortran Java


7

Programacin Unidad I
Lisp Modula-2 Pascal Perl PHP PL/SQL Python

Lenguaje de bajo nivel Un lenguaje de programacin de bajo nivel es el que proporciona un set de instrucciones aritmtico lgicas sin la capacidad de encapsular dichas instrucciones en funciones que no estn ya contempladas en la arquitectura del hardware. Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difcil. Dado que este lenguaje viene dado por las especificaciones tcnicas del hardware, no permite una abstraccin fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fcilmente trasladado a lenguaje de mquina. La estructura de los lenguajes es como sigue: 1. Lenguaje Mquina - Las invocaciones a memoria, como los procesos aritmtico lgicos son posiciones literales de conmutadores fsicos del hardware en su representacin booleana. Estos lenguajes son literales de tareas. 2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mnima lgica aritmtica. Estn ntimamente vinculados al hardware. Por norma general estn disponibles a nivel firmware, cmos o chip set.

Programacin Unidad I
Estos lenguajes estn orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware as haya sido diseada. Son denominados como ensambladores de un hardware concreto. 3. Lenguajes de medio nivel - Son aquellos que, basndose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmtico, pero a nivel lgico dependen de literales en ensamblador. Estos lenguajes estn orientados a procedimientos. Los procedimientos se componen de procesos. 4. Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones totalmente independientes de la mquina, y completamente dependientes de la red a la que estn orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-Servidor (Java, PHP) y de script.

Primera generacin El lenguaje de programacin de primera generacin (por sus siglas en ingls: 1GL), es el lenguaje de cdigo mquina. Es el nico lenguaje que microprocesador entiende de forma nativa. El lenguaje mquina no puede ser escrito o ledo usando un editor de texto, y por lo tanto es raro que una persona lo use directamente. Es el sistema de cdigos directamente interpretable por un circuito microprogramable, como el microprocesador de una computadora el microcontrolador de un autmata (un PLC). Este lenguaje est compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de mquina (ms los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos.
9

Programacin Unidad I
El lenguaje de mquina es especfico de cada mquina o arquitectura de la mquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.

Segunda generacin El lenguaje de programacin de segunda generacin (por sus siglas en ingls: 2GL), es el lenguaje ensamblador. Se considera de segunda generacin porque, aunque no es lenguaje nativo del microprocesador, un programador de lenguaje ensamblador debe conocer la arquitectura del microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones). El lenguaje ensamblador es un lenguaje de programacin de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador. Esta representacin es usualmente definida por el fabricante de hardware, y est basada en los mnemnicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria, y otras caractersticas del lenguaje. Un lenguaje ensamblador es por lo tanto especfico a cierta arquitectura de computador fsica (o virtual).

1.3.2

COMPILADOR.

Un compilador acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se quiera. Este proceso de traduccin se conoce como compilacin. El de los programas de partida (LA), el de los programas equivalentes traducidos (LB), normalmente el lenguaje de mquina el lenguaje en que est escrito el propio compilador (LC), que puede ser igual o diferente a LA. Aumenta la portabilidad del compilador si est escrito en el mismo lenguaje, es decir, se puede compilar a s mismo .Los
10

Programacin Unidad I
programas interpretados suelen ser ms lentos que los compilados, pero los intrpretes son ms flexibles como entornos de programacin y depuracin. Comparando su actuacin con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intrprete informtico corresponde al intrprete humano, que traduce de viva voz las palabras que oye, sin dejar Partes de un compilador Normalmente los compiladores estn divididos en dos partes:

Front End: es la parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar. Back End: es la parte que genera el cdigo mquina, especfico de una plataforma, a partir de los resultados de la fase de anlisis, realizada por el FrontEnd. Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de varios lenguajes de programacin distintos y que el mismo Front End que sirve para analizar el cdigo fuente de un lenguaje de programacin concreto sirva para la generacin de cdigo mquina en varias plataformas distintas. El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker).

Tipos de compiladores:

Compiladores cruzados: generan cdigo para un sistema distinto del que estn funcionando. Compiladores optimizadores: realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: generan el cdigo mquina a partir de una nica lectura del cdigo fuente.
11

Programacin Unidad I

Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo mquina. Compiladores JIT (Just In Time): forman parte de un intrprete y compilan partes del cdigo segn se necesitan.

Pauta de creacin de un compilador: En las primeras pocas de la informtica, el software de los compiladores era considerado como uno de los ms complejos existentes. Los primeros compiladores se realizaron programndolos directamente en lenguaje mquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.

1.3.3

TRADUCTOR.

Software de sistemas que convierte un cdigo fuente del programador en su equivalente en lenguaje maquina. Cdigo fuente. Cdigo de programacin de nivel alto escrito por el programador. Cdigo objeto. Otro nombre para el cdigo de lenguaje maquina. Intrprete. Traductor de lenguajes que convierte, ala vez, una sentencia de programa a un cdigo de mquina.

1.3.4

SISTEMAS DE NUMERACIN.

Un sistema de numeracin es un conjunto de smbolos y reglas de generacin que permiten construir todos los nmeros vlidos. Un sistema de numeracin puede representarse como donde:

N: es el sistema de numeracin considerado (p.ej. decimal, binario, etc.).

12

Programacin Unidad I
S: es el conjunto de smbolos permitidos en el sistema. En el caso del sistema decimal son {0,1,...9}; en el binario son{0,1}; en el octal son {0,1,...7}; en el hexadecimal son {0,1,...9,A,B,C,D, R: son las reglas que nos indican qu nmeros son vlidos en el sistema, y cules no. Estas reglas son diferentes para cada sistema de numeracin considerado, pero una regla comn a todos es que para construir nmeros vlidos en un sistema de numeracin determinado slo se pueden utilizar los smbolos permitidos en ese sistema. Para indicar en qu sistema de numeracin se representa una cantidad se aade como subndice a la derecha el nmero de smbolos que se pueden representar en dicho sistema.

Clasificacin Los sistemas de numeracin pueden clasificarse en dos grandes grupos: posicionales y no posicionales:

En los sistemas no posicionales los dgitos tienen el valor del smbolo utilizado, que no depende de la posicin (columna) que ocupan en el nmero. En los sistemas de numeracin ponderados o posicionales el valor de un dgito depende tanto del smbolo utilizado, como de la posicin que se smbolo ocupa en el nmero.

Por ejemplo, el sistema de numeracin egipcio es no posicional, en cambio el babilnico es posicional. Las lenguas naturales poseen sistemas de numeracin posicionales basados en base 10 20, a veces con subsistemas de cinco elementos. Adems, en algunas pocas lenguas los numerales bsicos a partir de cuatro tienen nombres basados en numerales ms pequeos.

Sistemas de numeracin no posicionales

Estos son los ms primitivos. Tiene mucho que ver con la coordinabilidad entre conjuntos.

13

Programacin Unidad I
Entre ellos estn los sistemas del antiguo Egipto, el sistema de numeracin romana, y los usados en Mesoamrica por mayas, aztecas y otros pueblos .

Sistemas de numeracin semi posicionales

El sistema de los nmeros romanos no es estrictamente posicional. Por esto, es muy complejo disear algoritmos de uso general (por ejemplo, para sumar, restar, multiplicar o dividir ). Como ejemplo, en el nmero romano XCIX (99 decimal) los numerales X (10 decimal) del inicio y del fin de la cifra equivalen siempre al mismo valor, sin importar su posicin dentro dela cifra. Sistemas de numeracin posicionales

El nmero de smbolos permitidos en un sistema de numeracin posicional se conoce como base del sistema de numeracin. Si un sistema de numeracin posicional tiene base b significa que disponemos de b smbolos diferentes para escribir los nmeros, y que b unidades forman una unidad de orden superior. Ejemplo en el sistema de numeracin decimal. Si contamos desde 0, incrementando una unidad cada vez, al llegar a 9unidades, hemos agotado los smbolos disponibles, y si queremos seguir contando no disponemos de un nuevo smbolo para representar la cantidad que hemos contado. Por tanto aadimos una nueva columna a la izquierda del nmero, reutilizamos los smbolos de que disponemos, decimos que tenemos una unidad de segundo orden (decena), ponemos a cero las unidades, y seguimos contando.

Sistema de numeracin octal

El sistema de numeracin octal es tambin muy usado en la computacin por tener una base que es potencia exacta de 2 o de la numeracin binaria. Esta caracterstica hace que la conversin a binario o viceversa sea bastante simple. El sistema octal usa 8 dgitos (0, 1, 2, 3, 4, 5, 6, 7) y tienen el mismo valor que en el sistema de numeracin decimal.
14

Programacin Unidad I
De igual forma, cuando contamos hasta 99, hemos agotado los smbolos disponibles para las dos columnas; por tanto si contamos (sumamos) una unidad ms, debemos poner a cero la columna de la derecha y sumar 1 a la de la izquierda (decenas). Pero la columna de la izquierda ya ha agotado los smbolos disponibles, as que la ponemos a cero, y sumamos1 a la siguiente columna (centena). Como resultado nos queda que 99+1=100. El cuentakilmetros mecnico, al utilizar el sistema de numeracin posicional decimal, nos muestra lo anterior: va sumando1 a la columna de la derecha y cuando la rueda de esa columna ha completado una vuelta (se agotan los smbolos), se pone a cero y se aade una unidad a la siguiente columna de la izquierda. Entre esos sistemas se encuentran el de base 2 sistema binario, de base 8 sistema octal y el de base 16 sistema hexadecimal.

Sistema de numeracin hexadecimal

El sistema de numeracin hexadecimal, de base 16, utiliza 16 smbolos. Slo se dispone de diez dgitos, se adopt la convencin de usar las seis primeras letras del alfabeto latino para suplir los dgitos que nos faltan: A = 10, B = 11, C = 12, D = 13, E= 14 y F = 15. Como en cualquier sistema de numeracin posicional, el valor numrico de cada dgito es alterado dependiendo de su posicin en la cadena de dgitos, quedando multiplicado por una cierta potencia de la base del sistema, que en este caso es 16. Por ejemplo: 3 E 0,A (16) = 316^2 + E16^1 + 016^0 + A16^-1 =3256 + 1416 + 01 + 100,0625 = 992,625. El sistema hexadecimal actual fue introducido en el mbito de la computacin por primera vez por IBM en 1963.

1.3.5

ARQUITECTURA DE UN COMPUTADORAS.
15

Programacin Unidad I
Se refiere al 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 (CPU) 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. CPU 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 CPU. Todas aquellas unidades de un sistema exceptuando la CPU se denomina perifrico, por lo que el ordenador tiene dos partes bien diferenciadas, que son: la CPU (encargada de ejecutar programas y que esta compuesta por la memoria principal, la UAL y la UC) 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

16

Programacin Unidad I
conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:
Almacenamiento

de operativos en la CPU: dnde se ubican los operadores aparte de la substractora informativa (SI). expresan en forma explcita en una instruccin tpica. Normalmente son 0, 1, 2 y 3.

Nmero de operandos explcitos por instruccin: cuntos operandos se

Posicin del operando: como 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 CPU La diferencia bsica est en el almacenamiento interno de la CPU. 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. (E j: calculadora de pila HP). La Arquitectura de registros tiene solo operandos explcitos (es aquel que se nombra) en registros o memoria.

Ventajas de la Arquitectura.
17

Programacin Unidad I

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.

Desventajas de la Arquitectura

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.

1.3.6

SISTEMAS OPERATIVOS.

Un Sistema Operativo (SO) es el software bsico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario. Las funciones bsicas del Sistema Operativo son administrar los recursos de la mquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento. Los Sistemas Operativos ms utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.
18

Programacin Unidad I

Descripcin del sistema operativo Se encarga de crear el vnculo entre los recursos materiales, el usuario y las aplicaciones (procesador de texto, videojuegos, etctera). Cuando un programa desea acceder a un recurso material, no necesita enviar informacin especfica a los dispositivos perifricos; simplemente enva la informacin al sistema operativo, el cual la transmite a los perifricos correspondientes a travs de su driver (controlador). Si no existe ningn driver, cada programa debe reconocer y tener presente la comunicacin con cada tipo de perifrico. De esta forma, el sistema operativo permite la "disociacin" de programas y hardware, principalmente para simplificar la gestin de recursos y proporcionar una interfaz de usuario (MMI por sus siglas en ingls) sencilla con el fin de reducir la complejidad del equipo.

Funciones del sistema operativo El sistema operativo cumple varias funciones:

Administracin del procesador: el sistema operativo administra la distribucin del procesador entre los distintos programas por medio de un algoritmo de programacin. El tipo de programador depende completamente del sistema operativo, segn el objetivo deseado. Gestin de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio de memoria asignado para cada aplicacin y para cada usuario, si resulta pertinente. Cuando la memoria fsica es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho ms lenta. Gestin de entradas/salidas: el sistema operativo permite unificar y controlar el acceso de los programas a los recursos materiales a travs de los drivers (tambin conocidos como administradores perifricos o de entrada/salida).

19

Programacin Unidad I

Gestin de ejecucin de aplicaciones: el sistema operativo se encarga de que las aplicaciones se ejecuten sin problemas asignndoles los recursos que stas necesitan para funcionar. Administracin de autorizaciones: el sistema operativo se encarga de la seguridad en relacin con la ejecucin de programas garantizando que los recursos sean utilizados slo por programas y usuarios que posean las autorizaciones correspondientes. Gestin de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios. Gestin de la informacin: el sistema operativo proporciona cierta cantidad de indicadores que pueden utilizarse para diagnosticar el funcionamiento correcto del equipo.

Componentes del sistema operativo El sistema operativo est compuesto por un conjunto de paquetes de software que pueden utilizarse para gestionar las interacciones con el hardware. Estos elementos se incluyen por lo general en este conjunto de software: Ncleo: que representa las funciones bsicas del sistema operativo, como por ejemplo, la gestin de la memoria, de los procesos, de los archivos, de las entradas/salidas principales y delas funciones de comunicacin. Intrprete de comandos: que posibilita la comunicacin con el sistema operativo a travs de un lenguaje de control, permitiendo al usuario controlar los perifricos sin conocer las caractersticas del hardware utilizado, la gestin de las direcciones fsicas, etctera. Sistema de archivos: que permite que los archivos se registren en una estructura arbrea.

1.4

DESCRIPCIN DE TIPOS DE PROGRAMACIN.


20

Programacin Unidad I

1.4.1

PROGRAMACIN ESTRUCTURADA.

Programacin estructurada (PE): La programacin estructurada est 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: 1) Estructuras secunciales: cada accin sigue a otra accin secuencialmente. La salida de una accin es la entrada de otra. 2) 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. 3) 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 ms fciles de entender Se reduce la complejidad de las pruebas.

Aumenta la productividad del programador. Los programas queden mejor documentados internamente .Un programa est 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.

21

Programacin Unidad I

1.4.2

PROGRAMACIN ORIENTADA A OBJETOS.

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.

1.4.3

PROGRAMACIN HARDWARE.

DE

DESCRIPCIN

DE

Un lenguaje de descripcin de hardware (HDL, Hardware Description Language) permite documentar las interconexiones y el comportamiento de un circuito electrnico, sin utilizar diagramas esquemticos. El flujo de diseo suele ser tpico: Definir la tarea o tareas que tiene que hacer el circuito. Escribir el programa usando un lenguaje HDL. Tambin existen programas de captura de esquemas que pueden hacer esto, pero no son tiles para diseos complicados. Comprobacin de la sintaxis y simulacin del programa. Programacin del dispositivo y comprobacin del funcionamiento.

Un rasgo comn a estos lenguajes suele ser la independencia del hardware y la modularidad o jerarqua, es decir, una vez hecho un diseo ste puede ser usado dentro de otro diseo ms complicado y con otro dispositivo compatible. Algunos ejemplos de este Lenguajes son:
22

Programacin Unidad I
VHDL Verilog ABEL HDL Otros lenguajes HDL propietarios

1.5

LENGUAJE DE PROGRAMACIN.

Es un lenguaje diseado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programacin es un modo prctico para que los seres humanos puedan dar instrucciones a un equipo.

Los lenguajes de programacin generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos: Lenguajes imperativos; Lenguajes funcionales.

Lenguaje de programacin imperativo Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de rdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condicin. Estos fueron los primeros lenguajes de programacin en uso y an hoy muchos lenguajes modernos usan este principio. No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de programacin funcional Un lenguaje de programacin funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones,
23

Programacin Unidad I
devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una funcin se invoca a s misma, hablamos de recursividad.

Interpretacin y compilacin Los lenguajes de programacin pueden, en lneas generales, dividirse en dos categoras: Lenguajes interpretados Lenguajes compilados

Lenguaje interpretado Un lenguaje de programacin es, por definicin, diferente al lenguaje mquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intrprete), que traduce los comandos de los programas segn sea necesario.

Lenguaje compilado Un programa escrito en un lenguaje "compilado" se traduce a travs de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningn otro programa para ejecutarse a s mismo. Este archivo se llama ejecutable. Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Adems, como slo es necesaria una traduccin, la ejecucin se vuelve ms rpida. Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificacin del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilacin del programa para aplicar los cambios.
24

Programacin Unidad I
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del cdigo fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricacin de un programa y, de ese modo, copiar su cdigo o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de cdigo para evitar las copias ilegales (transacciones bancarias, pagos en lnea, comunicaciones seguras).

Lenguajes intermediarios Algunos lenguajes pertenecen a ambas categoras (LISP, Java, Python) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilacin intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuentE) y no ejecutable (requerira un interprete). Los applets Java, pequeos programas que a menudo se cargan en pginas web, son archivos compilados que slo pueden ejecutarse dentro de un navegador web (son archivos con la extensin .class).

Lenguajes de Programacin actuales.

Lenguaje ADA BASIC C C++ Cobol Fortran Java MATLAB

Principal rea de aplicacin Tiempo real Programacin para fines educativos Programacin de sistema

Compilado/interpretado Lenguaje compilado Lenguaje interpretado Lenguaje compilado

Programacin de sistema orientado a objeto Lenguaje compilado Administracin Clculo Programacin orientada a Internet Clculos matemticos Lenguaje compilado Lenguaje compilado Lenguaje intermediario Lenguaje interpretado

25

Programacin Unidad I
Clculos matemticos Clculos matemticos LISP Pascal PHP Inteligencia artificial Perl Inteligencia artificial Educacin Desarrollo de sitios web dinmicos Inteligencia artificial Procesamiento de cadenas de caracteres Lenguaje interpretado Lenguaje intermediario Lenguaje compilado Lenguaje interpretado Lenguaje interpretado Lenguaje interpretado

BIBLIOGRAFA.
26

Programacin Unidad I

CONSULTA ELECTRNICA:

http://es.scribd.com/doc/49157320/BREVERESENA-DE-LA-COMPUTACION

http://200.69.103.48/comunidad/profesores/jruiz/j airocd/texto/cirdig/vhdl/man2.pdf

http://programacion1abundiz.blogspot.mx/2009/0 9/lenguaje-de-descripcion-de-hardware.html

http://www.monografias.com/trabajos/lengprog/le ngprog.shtml

27

Programacin Unidad I

28

Das könnte Ihnen auch gefallen