22
Lenguaje de programación Captura de la microcomputadora Commodore PET-32 mostrando un programa en el lenguaje de programación BASIC , bajo el emulador VICE en una distribución GNU /Linux . Un ejemplo de código fuente escrito en el lenguaje de programación Java, que imprimirá el mensaje "Hello World!" a la salida estándar cuando es compilado y ejecutado Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras . Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresaralgoritmos con precisión, o como modo de comunicación humana. 1 Está formado por un conjunto de símbolos y reglas sintácticas y semánticas 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 código fuente de un programa informático se le llama programación . También la palabra programación se define como el proceso de creación de un programa de computadora , mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

Lenguaje de programación.docx

Embed Size (px)

Citation preview

Page 1: Lenguaje de programación.docx

Lenguaje de programación

Captura de la microcomputadora Commodore PET-32  mostrando un programa en el lenguaje de

programación BASIC, bajo el emulador VICE en una distribución GNU /Linux .

Un ejemplo de código fuente escrito en el lenguaje de programación Java, que imprimirá el mensaje

"Hello World!" a la salida estándar cuando es compilado y ejecutado

Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas como las computadoras.

Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresaralgoritmos con precisión, o como modo de comunicación humana.1

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas 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 código fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

El desarrollo lógico del programa para resolver un problema en particular.

Escritura de la lógica del programa empleando un lenguaje de programación específico

(codificación del programa).

Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.

Prueba y depuración del programa.

Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y

Page 2: Lenguaje de programación.docx

a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).

Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativa.

Índice

  [ocultar] 

1 Historia

2 Elementos

o 2.1 Variables y vectores

o 2.2 Condicionantes

o 2.3 Bucles

o 2.4 Funciones

o 2.5 Sintaxis

o 2.6 Semántica estática

o 2.7 Sistema de tipos

2.7.1 Lenguajes tipados versus lenguajes no tipados

2.7.2 Tipos estáticos versus tipos dinámicos

2.7.3 Tipos débiles y tipos fuertes

3 Implementación

4 Técnica

o 4.1 Paradigmas

5 Véase también

6 Referencias

7 Enlaces externos

Historia[editar]

Page 3: Lenguaje de programación.docx

Código Fortran en una tarjeta perforada, mostrando el uso especializado de las columnas 1-5, 6 y 73-80.

Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.

Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.

La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Adafue escogido como homenaje a esta programadora.

A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar lacomputadora central IBM 704. El histórico equipo Fortran de Backus consistió en los programadores Richard Goldberg, Sheldon F. Best , Harlan Herrick , Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt  y David Sayre.2

El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.

En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática de gestión.

A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon

Page 4: Lenguaje de programación.docx

los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará una sola sentencia.

Elementos[editar]

Variables y vectores[editar]

Las variables podrían calificarse como contenedores de datos y por ello se diferencian según el tipo de dato que son capaces de almacenar. En la mayoría de lenguajes de programación se requiere especificar un tipo de variable concreto para guardar un dato concreto. Por ejemplo, en Java, si deseamos guardar una cadena de texto deberemos especificar que la variable es del tipo String. Por otra parte, en lenguajes como el PHP este tipo de especificación de variables no es necesario. Además, existen variables compuestas por varias variables llamadas vectores. Un vector no es más que un conjunto de variables consecutivas en memoria y del mismo tipo guardadas dentro de una variable contenedor. A continuación, un listado con los tipos de variables y vectores más comunes:

Variables tipo Char: Estas variables contienen un único carácter, es decir, una letra, un

signo o un número.

Variables tipo Int: Contienen un número entero.

Variables tipo float: Contienen un número decimal.

Variables tipo String: Contienen cadenas de texto, o lo que es lo mismo, es un vector con

varias variables del tipo Char.

Variables del tipo Boolean: Solo pueden contener un 0 o un 1. El cero es considerado

para muchos lenguajes como el literal "False", mientras que el 1 se considera "True".

Condicionantes[editar]

Los condicionantes son estructuras de código que indican que, para que cierta parte del programa se ejecute, deben cumplirse ciertas premisas; por ejemplo: que dos valores sean iguales, que un valor exista, que un valor sea mayor que otro... Estos condicionantes por lo general solo se ejecutan una vez a lo largo del programa. Los condicionantes más conocidos y empleados en programación son:

If: Indica una condición para que se ejecute una parte del programa.

Else if: Siempre va precedido de un "If" e indica una condición para que se ejecute una

parte del programa siempre que no cumpla la condición del if previo y si se cumpla con la

que el "else if" especifique.

Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe ejecutarse

cuando no se cumplan las condiciones prévias.

Bucles[editar]

Los bucles son parientes cercanos de los condicionantes, pero ejecutan constantemente un código mientras se cumpla una determinada condición. Los más frecuentes son:

Page 5: Lenguaje de programación.docx

For: Ejecuta un código mientras una variable se encuentre entre 2 determinados

parámetros.

While: Ejecuta un código mientras se cumpla la condición que solicita.

Hay que decir que a pesar de que existan distintos tipos de bucles, ambos son capaces de realizar exactamente las mismas funciones. El empleo de uno u otro depende, por lo general, del gusto del programador.

Funciones[editar]

Las funciones se crearon para evitar tener que repetir constantemente fragmentos de código. Una función podría considerarse como una variable que encierra código dentro de si. Por lo tanto cuando accedemos a dicha variable (la función) en realidad lo que estamos es diciendo al programa que ejecute un determinado código predefinido anteriormente.

Todos los lenguajes de programación tienen algunos elementos de formación primitivos para la descripción de los datos y de los procesos o transformaciones aplicadas a estos datos (tal como la suma de dos números o la selección de un elemento que forma parte de una colección). Estos elementos primitivos son definidos por reglas sintácticas y semánticas que describen su estructura y significado respectivamente.

Sintaxis[editar]

Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su lectura.

Este ejemplo está escrito en Python.

A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un programa.

La sintaxis de un lenguaje de programación describe las combinaciones posibles de los símbolos que forman un programa sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su semántica (ya sea formal o como parte del código duro de la referencia de implementación). Dado que la mayoría de los lenguajes son textuales, este artículo trata de la sintaxis textual.

La sintaxis de los lenguajes de programación es definida generalmente utilizando una combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-

Page 6: Lenguaje de programación.docx

Naur (para la estructura gramática). Este es un ejemplo de una gramática simple, tomada de Lisp:

expresión ::= átomo | listaátomo ::= número | símbolonúmero ::= [+-]? ['0'-'9']+símbolo ::= ['A'-'Z'] ['a'-'z'].*lista ::= '(' expresión* ')'

Con esta gramática se especifica lo siguiente:

una expresión puede ser un átomo o una lista;

un átomo puede ser un número o un símbolo;

un número es una secuencia continua de uno o más dígitos decimales, precedido

opcionalmente por un signo más o un signo menos;

un símbolo es una letra seguida de cero o más caracteres (excluyendo espacios); y

una lista es un par de paréntesis que abren y cierran, con cero o más expresiones en

medio.

Algunos ejemplos de secuencias bien formadas de acuerdo a esta gramática:

'12345', '()', '(a b c232 (1))'

No todos los programas sintácticamente correctos son semánticamente correctos.

Muchos programas sintácticamente correctos tienen inconsistencias con las reglas del

lenguaje; y pueden (dependiendo de la especificación del lenguaje y la solidez de la

implementación) resultar en un error de traducción o ejecución. En algunos casos, tales

programas pueden exhibir un comportamiento indefinido. Además, incluso cuando un

programa está bien definido dentro de un lenguaje, todavía puede tener un significado que

no es el que la persona que lo escribió estaba tratando de construir.

Usando el lenguaje natural, por ejemplo, puede no ser posible asignarle significado a una

oración gramaticalmente válida o la oración puede ser falsa:

"Las ideas verdes y descoloridas duermen furiosamente" es una oración bien formada

gramaticalmente pero no tiene significado comúnmente aceptado.

"Juan es un soltero casado" también está bien formada gramaticalmente pero expresa

un significado que no puede ser verdadero.

El siguiente fragmento en el lenguaje C es sintácticamente correcto, pero ejecuta una

operación que no está definida semánticamente (dado que p es un apuntador nulo, las

operaciones p->real y p->im no tienen ningún significado):

Page 7: Lenguaje de programación.docx

complex *p = NULL;complex abs_p = sqrt (p->real * p->real + p->im * p->im);

Si la declaración de tipo de la primera línea fuera omitida, el programa dispararía un error

de compilación, pues la variable "p" no estaría definida. Pero el programa sería

sintácticamente correcto todavía, dado que las declaraciones de tipo proveen información

semántica solamente.

La gramática necesaria para especificar un lenguaje de programación puede ser

clasificada por su posición en la Jerarquía de Chomsky. La sintaxis de la mayoría de los

lenguajes de programación puede ser especificada utilizando una gramática Tipo-2, es

decir, son gramáticas libres de contexto. Algunos lenguajes, incluyendo a Perl y a Lisp,

contienen construcciones que permiten la ejecución durante la fase de análisis. Los

lenguajes que permiten construcciones que permiten al programador alterar el

comportamiento de un analizador hacen del análisis de la sintaxis un problema sin

decisión única, y generalmente oscurecen la separación entre análisis y ejecución. En

contraste con el sistema de macros de Lisp y los bloques BEGIN de Perl, que pueden

tener cálculos generales, las macros de C son meros reemplazos de cadenas, y no

requieren ejecución de código.

Sistema operativo

Interacción entre el SO con el resto de las partes.

Page 8: Lenguaje de programación.docx

Estimación del uso de sistemas operativos en computadoras de escritorio con acceso a Internet en

enero de 2012.

Estimación del uso de versiones de sistemas operativos según una muestra de computadoras con

acceso a Internet en enero de 2012.

Estimación del uso de sistemas operativos en dispositivos móviles con acceso a Internet en enero de

2012.

Estimación del uso de sistemas operativos según una muestra de computadoras con acceso a Internet

en noviembre de 2009.1

Un sistema operativo (SO o, frecuentemente, OS —del inglés Operating System—) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes y anteriores próximos y viceversa (aunque puede que parte del mismo se ejecute en espacio de usuario).2

Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interacción con el sistema operativo, también llamado núcleo o kernel. Esta identidad entre kernel y sistema operativo es solo cierta si el núcleo es monolítico. Otro ejemplo para comprender esta diferencia se encuentra en la plataforma Amiga, donde el entorno gráfico de usuario se distribuía por separado, de modo que, también podía reemplazarse por otro, como era el caso de directory Opus  o incluso manejarlo arrancando con una línea de comandos y

Page 9: Lenguaje de programación.docx

el sistema gráfico. De este modo, al arrancar un Amiga, comenzaba a funcionar con el propio sistema operativo que llevaba incluido en una ROM, por lo que era cuestión del usuario decidir si necesitaba un entorno gráfico para manejar el sistema operativo o simplemente otra aplicación. Uno de los más prominentes ejemplos de esta diferencia, es el núcleo Linux, usado en las llamadas distribuciones Linux, ya que al estar también basadas en Unix, proporcionan un sistema de funcionamiento similar. Este error de precisión, se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores3 se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar.4 (Véase AmigaOS, beOS o Mac OS como los pioneros5 de dicha modernización, cuando los Amiga fueron bautizados con el sobrenombre de Video Toasters6 por su capacidad para la Edición de vídeo en entornomultitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D.

Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.). En cuyo caso, son manejados mediante una interfaz gráfica de usuario, un gestor de ventanas o un entorno de escritorio, si es un celular, mediante una consola o control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un enrutador.

Índice

  [ocultar] 

1 Perspectiva histórica

o 1.1 Problemas de explotación y soluciones iniciales

o 1.2 Monitores residentes

o 1.3 Sistemas con almacenamiento temporal de E/S

o 1.4 Spoolers

o 1.5 Sistemas operativos multiprogramados

2 Llamadas al sistema operativo

o 2.1 Modos de ejecución en un CPU

o 2.2 Llamadas al sistema

o 2.3 Bibliotecas de interfaz de llamadas al sistema

3 Interrupciones y excepciones

o 3.1 Tratamiento de las interrupciones

o 3.2 Importancia de las interrupciones

o 3.3 Excepciones

3.3.1 Clases de excepciones

3.3.2 Importancia de las excepciones

Page 10: Lenguaje de programación.docx

4 Componentes de un sistema operativo

o 4.1 Gestión de procesos

o 4.2 Gestión de la memoria principal

o 4.3 Gestión del almacenamiento secundario

o 4.4 El sistema de entrada y salida

o 4.5 Sistema de archivos

o 4.6 Sistemas de protección

o 4.7 Sistema de comunicaciones

o 4.8 Programas de sistema

o 4.9 Gestor de recursos

5 Clasificación

o 5.1 Administración de tareas

o 5.2 Administración de usuarios

o 5.3 Manejo de recursos

o 5.4 Ejemplos de sistemas operativos para PC

o 5.5 Ejemplos de sistemas operativos para dispositivos móviles

6 Véase también

7 Referencias

8 Bibliografía

9 Enlaces externos

Perspectiva histórica[editar]

Los primeros sistemas (1945-1955) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1955-1965) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto a su vez provocó un avance en el software: compiladores, ensambladores,cargadores, manejadores de dispositivos, etc.

A finales de los años 1980, una computadora Commodore Amiga  equipada con una aceleradora Video Toaster era capaz de producir efectos comparados a sistemas dedicados que costaban el triple. Un Video Toaster junto a Lightwave ayudó a producir muchos programas de televisión y películas, entre las que se incluyen Babylon 5 , SeaQuest DSV yTerminator 2.7

Problemas de explotación y soluciones iniciales[editar]

El problema principal de los primeros sistemas era la baja utilización de los mismos, la primera solución fue poner un operador profesional que lo manejase, con lo que se eliminaron las hojas de reserva, se ahorró tiempo y se aumentó la velocidad.

Para ello, los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento por lotes (batch) sin automatizar.

Page 11: Lenguaje de programación.docx

Monitores residentes[editar]

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial.

Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que automatizaran la organización de tareas sin necesidad de un operador. Debido a ello se crearon los monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola de trabajos.

Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y un controlador (drivers) para el manejo de entrada/salida.

Sistemas con almacenamiento temporal de E/S[editar]

Los avances en el hardware crearon el soporte de interrupciones y posteriormente se llevó a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos, por lo que se creó el sistema de búfers con el siguiente funcionamiento:

Un programa escribe su salida en un área de memoria (búfer 1).

El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula

depositando la salida en el buffer 2.

La salida desde el buffer 1 termina y el nuevo cálculo también.

Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.

El proceso se puede repetir de nuevo.

Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S).

Spoolers[editar]

Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).

Sistemas operativos multiprogramados[editar]

Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:

Page 12: Lenguaje de programación.docx

Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.

Se pueden mantener en memoria varios programas.

Se asigna el uso de la CPU a los diferentes programas en memoria.

Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:

Administrar la memoria.

Gestionar el uso de la CPU (planificación).

Administrar el uso de los dispositivos de E/S.

Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.

Page 13: Lenguaje de programación.docx

LENGUAJES DE PROGRAMACION

Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

Según la forma de ejecución

Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras

Page 14: Lenguaje de programación.docx

haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor

Page 15: Lenguaje de programación.docx

rapidez que uno que se debe interpretar a cada paso durante una corrida de producción.

¿Qué es un Sistema Operativo?En Breve

Un Sistema Operativo (SO) es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.

Las funciones básicas del Sistema Operativo son administrar los recursos de la máquina, coordinar el hardware y organizar archivos y directorios en dispositivos de almacenamiento.

Los Sistemas Operativos más utilizados son Dos, Windows, Linux y Mac. Algunos SO ya vienen con un navegador integrado, como Windows que trae el navegador Internet Explorer.

Definición de Sistema Operativo

El sistema operativo es el programa (o software) más 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 básicas, tales como reconocimiento de la conexión del teclado, enviar la

información a la pantalla, no perder de vista archivos y directorios en el disco,

y controlar los dispositivos periféricos tales como impresoras, escáner, etc.

En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad

y poder, es como un policía de tráfico, se asegura de que los programas y

usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El

sistema operativo también es responsable de la seguridad, asegurándose de

que los usuarios no autorizados no tengan acceso al sistema.

Clasificación de los Sistemas Operativos

Los sistemas operativos pueden ser clasificados de la siguiente forma:

Multiusuario: Permite que dos o más 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 más 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.

Page 16: Lenguaje de programación.docx

Tiempo Real: Responde a las entradas inmediatamente. Los sistemas

operativos como DOS y UNIX, no funcionan en tiempo real.

Cómo 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 elección del sistema operativo determina en gran

medida las aplicaciones que puedes utilizar.

Los sistemas operativos más utilizados en los PC son DOS, OS/2, y

Windows, pero hay otros que también se utilizan, como por ejemplo

Linux.

Cómo se utiliza un Sistema Operativo

Un usuario normalmente interactúa con el sistema operativo a través 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 intérprete de la línea de comandos. Las

interfaces gráficas permiten que utilices los comandos señalando y pinchando

en objetos que aparecen en la pantalla.

Importancia del Sistema Operativo

 

Page 17: Lenguaje de programación.docx

Los dispositivos electrónicos como los ordenadores, teléfonos móviles, reproductores de música o reproductores de Blu-ray son una clase de productos que uno se habitúa a manejar con algo de tiempo, paciencia y ganas de querer sacarles provecho.En el pasado, manejar dispositivos como un reproductor de cintas VHS o una videocámara Super 8 era una cuestión más de hardware que de software: su propietario debía limitarse a simplemente interactuar con unos botones mecánicos distribuidos por el cuerpo del producto, accediendo a funciones básicas y únicas para cada tipología de dispositivo.Un tiempo después fue necesario disponer de un sistema capaz de permitir operar con una máquina, de forma más o menos intuitiva, para dar respuesta a unas u otras necesidades de control de unos procesos y unas actividades. El nacimiento del primer sistema operativo tuvo lugar en la segunda mitad de pasada década de los 50, todavía en el siglo XX: en 1956, un equipo de General Motors diseñó el sistema operativo GM-NAA I/O, para instalarse en un ordenador IBM y así acometer una función muy concreta en una actividad determinada.La creación, desarrollo y evolución de los sistemas operativos han sido básicos para el acercamiento al consumidor particular de productos especialmente sensibles para el gran consumo, como son los ordenadores y los teléfonos móviles. El sistema operativo ha hecho posible que cualquier individuo corriente pueda manejar un dispositivo electrónico sin la necesidad de tener conocimientos técnicos, siendo relativemente sencillo hacerse con el control de una interfaz de usuario visual.La importancia del sistema operativo ha estado muy ligada a la presentación visual de comandos de datos primero, y a una interfaz gráfica después: el sistema operativo sería el nexo de unión entre la máquina y el hombre.En el terreno de los ordenadores personales (PCs), los primeros sistemas operativos más conocidos por el gran público fueron MS-DOS, Linux, IBM OS/2, MS Windows y el primer Mac OS X: el sistema operativo que lideraría, y sigue liderando, en los hogares de todo el mundo es Microsoft Windows, que nació en 1985.MS Windows es el sistema operativo que más ha contribuido al manejo, entendimiento y aprovechamiento de un ordenador por parte de una persona, ya sea en el desarrollo de su actividad profesional o en una función más doméstica encaminada al entretenimiento.El sistema operativo es el software que gobierna una máquina, el conjunto de procesos que determinan lo que se ve y lo que se desea haga un dispositivo con cada acción que realiza el usuario. El sistema operativo es la base sobre la que se instalan los programas que harán posible que una persona retoque una imagen con Photoshop, prepare una presentación con Office, escuche música con iTunes, grabe un DVD con Nero o vea una película con VLC.El sistema operativo es el responsable de que un dispositivo tecnológicamente complejo pueda ser una herramienta sencilla en su uso, cumpliendo una utilidad destacada en la vida diaria de las personas. Los sistemas operativos modernos y más comunes, como Windows 8 para PCs o Android en Smartphones, son cruciales para que la sociedad se comunique y pueda aprovechar el mundo digital y el acceso a los servicios accesibles desde Internet.La constante evolución de estos sistemas de gobierno ha hecho posible el uso de varias tecnologías integradas en un mismo dispositivo: este es el caso de los teléfonos móviles inteligentes, que son una combinación de reproductor de música, cámara digital, agenda electrónica, videoconsola, gestor de correo electrónico y reproductor de video.

Page 18: Lenguaje de programación.docx

En el terreno de la telefonía móvil, la adopción de un sistema operativo avanzado ha sido especialmente sensible, ya que ha permitido utilizar un celular con las manos, organizar grandes cantidades de información a través de las aplicaciones móviles o manejar y compartir archivos. La adopción de Google Android como sistema operativo ha marcado y multiplicado las ventajas de tener un teléfono móvil en un bolsillo, no solo como herramiento de comunicación, sino como útil para acceder a información y al puro entretenimiento personal.En telefonía móvil, el sistema operativo ha tenido un papel críticamente relevante de cara a utilizar estos portables dispositivos electrónicos para múltiples funciones: una persona puede comprar un teléfono solo debiendo tener en cuenta las características técnicas del producto. Se ha pasado de sistemas operativos propietarios, únicos y diseñados por cada marca; a sistemas operativos estandarizados, que vienen instalados en varias marcas de teléfonos móviles (o Smartphone). Google Android es el sistema operativo mayoritario en la segunda década del siglo XXI, que corre bajo las interfaces de usuario adaptadas por marcas como Samsung, HTC, LG o Huawei.El sistema operativo hace posible que una persona pueda “comunicarse” con una máquina, ya sea utilizando un ratón, tocando sobre una pantalla táctil, presionando un botón físico o pulsando las teclas de un teclado: y a todas las acciones de un usuario, la máquina ofrece respuestas visuales, táctiles o sonoras.La importancia del sistema operativo moderno reside en poder controlar una máquina a través de una interfaz visual, sin tener grandes conocimientos técnicos, convirtiendo un hardware complejo en una solución para el hogar o la oficina completamente amigable y accesible a todos los públicos.

desde Importancia http://www.importancia.org/sistema-operativo.php#ixzz3CTNWzQiT

Page 19: Lenguaje de programación.docx

http://isis.faces.ula.ve/computacion/Israel/Sistema_operat.PDF

http://es.wikipedia.org/wiki/Sistema_operativo

http://www.masadelante.com/faqs/sistema-operativo

http://www.importancia.org/sistema-operativo.php

http://webdelprofesor.ula.ve/ingenieria/amoret/pd1/clase2.pdf

http://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n