Sie sind auf Seite 1von 10

INSTITUTO POLITECNICO NACIONAL ESIME UNIDAD CULHUACN GUTIERREZ LOPEZ ANDRES FUNDAMENTOS DE PROGRAMACION UNIDAD 1

PROFESORA: PILAR RESENDIZ

Sistemas Operativos
1.1.1. Definicin, Caractersticas y Funcin de un Sistema Operativo. CARACTERISTICAS:
1. Concurrencia.
Consiste en la existencia de varias actividades simultneas o paralelas. Ejemplo de ello lo son la superposicin de las operaciones de I/O con el proceso de computacin, as como la coexistencia en memoria de varios programas. La concurrencia lleva asociado el problema de conmutar de una tarea a otra, as como proteger una determinada actividad de los efectos de las otras, as como la sincronizacin de tareas que sean mutuamente dependientes.

2. Utilizacin conjunta de recursos. Comparticin.


Las razones para la comparticin son las siguientes: a) El coste: es absurdo disponer de suficientes recursos para cada usuario por separado. b) Aprovechamiento de los trabajos de otros. La utilidad es poder utilizar rutinas y programas desarrollados por otras personas.

c) Posibilidad de compartir datos: Utilizacin de una misma base de datos para varios programas distintos, asociados posiblemente a distintos usuarios. d) Eliminacin de redundancias: poder disponer de una sola copia de un programa (por ejemplo un compilador) y compartirlo con otros. 3. Permite que el usuario guarde sus datos o programas en el propio ordenador, y no tener que usar medios externos (portables). Los problemas que se plantean son de proteccin de la informacin frente a terceros y protegerlos frente a fallos del sistema. 4. Un Sistema Operativo debe ser determinista en el sentido de que el mismo programa ejecutado con los mismos datos, en momentos diferentes, debe producir los mismos resultados. En cambio ser indeterminista porque en caso de variabilidad de las situaciones puede responder de un modo impredecible. Deben tomarse las medidas oportunas. Estas situaciones pueden ser debidas a peticin de recursos, errores de ejecucin en programas o bien interrupcin de perifricos.

FUNCIONES
Se tendr como punto de partida la mquina tal cual, es decir, el hardware bsico del computador, con una CPU, memoria central y perifricos. Sin ayuda del software las operaciones de cargar y ejecutar un programa se debe realizar de forma manual, es decir totalmente bajo control humano. El operador debe llevar a cabo una secuencia de tareas: Colocar el programa fuente almacenado en el dispositivo de entrada adecuado (cintas, tarjetas, discos...). Desencadenar la ejecucin de un programa de lectura para el dispositivo elegido. Desencadenar la ejecucin de un compilador que traduzca el programa fuente. Colocar los datos de entrada en el dispositivo adecuado. Ejecutar el programa objeto.

Sacar los resultados por impresora.

1.1.2. Anlisis comparativo de Sistemas Operativos (MSDOS, LINUX, WINDOWS)

1.2. Evolucin de los lenguajes de programacin.

1.2.1. Definicin, Caractersticas y Funciones de los Lenguajes de Programacin.


DEFINICION
Un lenguaje de programacin es un lenguaje formal diseado para expresar procesos que pueden ser llevados a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1 Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos:

El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin.

Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de

un lenguaje que intenta estar relativamenteprximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.

FUNCION
Las funciones se crearon para evitar tener que repetir constantemente fragmentos de cdigo. Una funcin podra considerarse como una variable que encierra cdigo dentro de si. Por lo tanto cuando accedemos a dicha variable (la funcin) en realidad lo que estamos es diciendo al programa que ejecute un determinado cdigo predefinido anteriormente. Todos los lenguajes de programacin tienen algunos elementos de formacin primitivos para la descripcin de los datos y de los procesos o transformaciones aplicadas a estos datos (tal como la suma de dos nmeros o la seleccin de un elemento que forma parte de una coleccin). Estos elementos primitivos son definidos por reglas sintcticas y semnticas que describen su estructura y significado respectivamente.

1.3. Interpretes, Compiladores. 1.3.1. Definicin de Intrpretes y Compiladores, Ambiente integral del Lenguaje C

Interprete: En ciencias decomputacin, intrprete o interpretador es


un programa informtico capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de

los compiladores en que mientras estos traducen un programa desde su descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin. Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables especficos a cada sistema. Los programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles como entornos deprogramacin y depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina virtual). Para mejorar el desempeo, algunas implementaciones de programacin de lenguajes de programacin pueden interpretar o compilar el cdigo fuente original en una ms compacta forma intermedia y despus traducir eso al cdigo de mquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representacin intermedia (ej. Python, UCSD Pascal y Java).

COMPILADORES: Un compilador es un programa informtico que traduce un


programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin.

Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora. Como parte importante de este proceso de traduccin, el compilador informa a su usuario de la presencia de errores en el programa fuente.

PARTES DE UN COMPILADOR
La construccin de un compilador involucra la divisin del proceso en una serie de fases que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el anlisis del programa fuente y la sntesis del programa objeto. Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye las fases correspondientes al Anlisis lxico (que consiste en la descomposicin del programa fuente en componentes lxicos), Anlisis sintctico (agrupacin de los componentes lxicos en frases gramaticales ) y Anlisis semntico (comprobacin de la validez semntica de las sentencias aceptadas en la fase de Anlisis Sintctico). Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente posible). Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden agrupar en Front-end y Back-end: 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, y est compuesta por las fases comprendidas entre el Anlisis Lxico y la Generacin de Cdigo Intermedio. 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 Front End.

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 generar cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin del cdigo dependiente de la mquina. El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker)

Das könnte Ihnen auch gefallen