Software - iupsm.files.wordpress.com · ejecutables, con extensión .exe, en los sistemas...

22
PDF generado usando el kit de herramientas de fuente abierta mwlib. Ver http://code.pediapress.com/ para mayor información. PDF generated at: Tue, 20 Apr 2010 21:09:48 UTC Software

Transcript of Software - iupsm.files.wordpress.com · ejecutables, con extensión .exe, en los sistemas...

PDF generado usando el kit de herramientas de fuente abierta mwlib Ver httpcodepediapresscom para mayor informacioacutenPDF generated at Tue 20 Apr 2010 210948 UTC

Software

ContenidosArtiacuteculos

Programa informaacutetico 1Sistema operativo 4Aplicacioacuten informaacutetica 12Lenguaje de programacioacuten 13

ReferenciasFuentes y contribuyentes del artiacuteculo 18Fuentes de imagen Licencias y contribuyentes 19

Licencias de artiacuteculosLicencia 20

Programa informaacutetico 1

Programa informaacuteticoUn programa informaacutetico es un conjunto de instrucciones que una vez ejecutadas realizaraacuten una o varias tareas enuna computadora Sin programas estas maacutequinas no pueden funcionar correctamente[1] [2] Al conjunto general deprogramas se lo denomina software y asiacute se refiere al equipamiento loacutegico o soporte loacutegico de una computadoradigitalEn informaacutetica se los denomina comuacutenmente binarios (propio en sistemas unix donde debido a la estructura deeste uacuteltimo los ficheros no necesitan hacer uso de extensiones Posteriormente los presentaron como ficherosejecutables con extensioacuten exe en los sistemas operativos de la familia Windows) debido a que una vez que hanpasado por el proceso de compilacioacuten y han sido creados las instrucciones que se escribieron en un lenguaje deprogramacioacuten que los humanos usan para escribirlos con mayor facilidad se han traducido al uacutenico idioma que lamaacutequina comprende combinaciones de ceros y unos llamada coacutedigo maacutequina El mismo teacutermino puede referirsetanto a un programa ejecutable como a su coacutedigo fuente el cual es transformado en un binario cuando es compiladoGeneralmente el coacutedigo fuente lo escriben profesionales conocidos como programadores Se escribe en un lenguajeque sigue uno de los siguientes dos paradigmas imperativo o declarativo y que posteriormente puede ser convertidoen una imagen ejecutable por un compilador Cuando se pide que el programa sea ejecutado el procesador ejecutainstruccioacuten por instruccioacutenDe acuerdo a sus funciones se clasifican en software de sistema y software de aplicacioacuten En los computadoresactuales al hecho de ejecutar varios programas de forma simultaacutenea y eficiente se le conoce como multitarea

EjecucioacutenUna vez escritos pueden ser ejecutados de diversas formasbull Mediante un programa que va adaptando las instrucciones conforme son encontradas A este proceso se lo llama

interpretar y a los programas que lo hacen se los conoce como inteacuterpretes Ejemplos de esto son bash claacutesico enestaciones Unix y que fue escrito para el proyecto GNU o Python cuya peculiaridad ademaacutes de sermultipropoacutesito estaacute en su facilidad de uso y productividad y de hecho es usado en parte de los proyectos Googley Youtube[3]

bull Traduciendo el coacutedigo escrito del programa (lo que se denomina coacutedigo fuente) a su equivalente en lenguajemaacutequina A este proceso se le llama compilar y al programa traductor se le denomina compilador Ejemplos deesto son El lenguaje C que combina en su sintaxis caracteriacutesticas de medio y bajo nivel y el compilador gccusado en el proyecto GNU

Programas que se auto-modificanUn programa en ejecucioacuten se trata de forma diferente que los datos en los cuales opera De cualquier forma enalgunos casos eacutesta distincioacuten es ambigua especialmente cuando un programa se modifica a siacute mismo El programamodificado es secuencialmente ejecutado como parte del mismo programa Se pueden escribir programasauto-modificables en lenguajes como Lisp COBOL y Prolog

Ejecucioacuten y almacenamiento de los programasTiacutepicamente los programas se almacenan en una memoria no volaacutetil (por ejemplo un disco) para que luego el usuario de la computadora directa o indirectamente solicite su ejecucioacuten Al momento de dicha solicitud el programa es cargado en la memoria de acceso aleatorio o RAM del equipo bajo el control del software llamado sistema operativo el cual puede acceder directamente al procesador El procesador ejecuta (corre) el programa instruccioacuten por instruccioacuten hasta que termina A un programa en ejecucioacuten se le suele llamar tambieacuten proceso Un programa puede terminar su ejecucioacuten en forma normal o por causa de un error dicho error puede ser de software o

Programa informaacutetico 2

de hardware

Programas empotrados en hardware

El microcontrolador a la derecha de la Memoria USB estaacutecontrolada por un firmware empotrado

Algunos programas estaacuten empotrados en el hardware Unacomputadora con arquitectura de programas almacenadosrequiere un programa inicial almacenado en su ROM paraarrancar El proceso de arranque es para identificar einicializar todos los aspectos del sistema desde los registrosdel procesador controladores de dispositivos hasta elcontenido de la memoria RAM[4] Seguido del proceso deinicializacioacuten este programa inicial carga al sistemaoperativo e inicializa al contador de programa para empezarlas operaciones normales Independiente de la computadoraun dispositivo de hardware podriacutea tener firmwareempotrado para el control de sus operaciones El firmwarese utiliza cuando se espera que el programa cambie en rarasocasiones o nunca o cuando el programa no debe perderse

cuando haya ausencia de energiacutea[5]

Programas cargados manualmente

Interruptores para la carga manual en una Data General Nova 3

Los programas histoacutericamente se cargaron manualmente alprocesador central mediante interruptores Una instruccioacutenera representada por una configuracioacuten de estado abierto ocerrado de los interruptores Despueacutes de establecer laconfiguracioacuten se ejecutaba un botoacuten de ejecucioacuten Esteproceso era repetitivo Tambieacuten histoacutericamente losprogramas se cargaban manualmente mediante una cinta depapel o tarjetas perforadas Despueacutes de que el programa secargaba la direccioacuten de inicio se estableciacutea medianteinterruptores y el botoacuten de ejecucioacuten se presionaba[6]

Programas generados automaacuteticamente

La programacioacuten automaacutetica es un estilo de programacioacuten que crea coacutedigo fuente mediante clases geneacutericasprototipos plantillas aspectos y generadores de coacutedigo para aumentar la productividad del programador El coacutedigofuente se genera con herramientas de programacioacuten tal como un procesador de plantilla o un IDE La forma maacutessimple de un generador de coacutedigo fuente es un procesador macro tal como el preprocesador de C que reemplazapatrones de coacutedigo fuente de acuerdo a reglas relativamente simples

Un motor de software da de salida coacutedigo fuente o lenguaje de marcado que simultaacuteneamente se vuelve la entrada deotro proceso informaacutetico Podemos pensar como analogiacutea un proceso manejando a otro siendo el coacutedigo maacutequinaquemado como combustible Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente Por ejemplo un software para wikis es un sevidor de aplicaciones que permite a los usuariosdesarrollar contenido dinaacutemico ensamblado a partir de artiacuteculos Las Wikis generan HTML CSS Java y Javascriptlos cuales son interpretados por un navegador web

Programa informaacutetico 3

Ejecucioacuten simultaacuteneaVeacuteanse tambieacuten Proceso (informaacutetica) y Multiprocesamiento

Muchos programas pueden correr simultaacuteneamente en la misma computadora a lo cual se le conoce como multitareay puede lograrse a traveacutes de mecanismos de software o de hardware Los sistemas operativos modernos puedencorrer varios programas a traveacutes del planificador de procesos mdash un mecanismo de software para conmutar confrecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programamientras estos estaacuten corriendo[7] Tambieacuten se puede lograr la multitarea por medio del hardware las computadorasmodernas que usan varios procesadores o procesadores con varios nuacutecleos pueden correr muchos programas a lavez[8]

Categoriacuteas funcionalesLos programas se pueden categorizar seguacuten liacuteneas funcionales Estas categoriacuteas funcionales son software de sistemay software de aplicacioacuten El software de sistema incluye al sistema operativo el cual acopla el hardware con elsoftware de aplicacioacuten[9] El propoacutesito del sistema operativo es proveer un ambiente en el cual el software deaplicacioacuten se ejecuta de una manera conveniente y eficiente[9] Ademaacutes del sistema operativo el software de sistemaincluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software desistema entonces es software de aplicacioacuten El middleware tambieacuten es un software de aplicacioacuten que acopla elsoftware de sistema con la interfaz de usuario Tambieacuten son software de aplicacioacuten los programas utilitarios queayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento

Veacutease tambieacutenbull Softwarebull Lenguajes de programacioacuten

Bibliografiacuteabull Knuth Donald E (1997) The Art of Computer Programming Volume 1 3rd Edition Boston Addison-Wesley

ISBN 0-201-89683-4 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 2 3rd Edition Boston Addison-Wesley

ISBN 0-201-89684-2 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 3 3rd Edition Boston Addison-Wesley

ISBN 0-201-89685-0 (en ingleacutes)

Referencias[1] Stair Ralph M et al (2003) Principles of Information Systems Sixth Edition Thomson Learning Inc pp 132 ISBN 0-619-06489-7 (en

ingleacutes)[2] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 58 ISBN 0-201-50480-4 (en ingleacutes)[3] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[4] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 30 ISBN 0-201-50480-4 (en ingleacutes)[5] Tanenbaum Andrew S (1990) Structured Computer Organization Third Edition Prentice Hall pp 11 ISBN 0-13-854662-2 (en ingleacutes)[6] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 6 ISBN 0-201-50480-4 (en ingleacutes)[7] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 100 ISBN 0-201-50480-4 (en ingleacutes)[8] Akhter Shameem (2006) Multi-Core Programming Richard Bowles (Intel Press) pp 11-13 ISBN 0-9764832-4-6 (en ingleacutes)[9] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 1 ISBN 0-201-50480-4 (en ingleacutes)

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

ContenidosArtiacuteculos

Programa informaacutetico 1Sistema operativo 4Aplicacioacuten informaacutetica 12Lenguaje de programacioacuten 13

ReferenciasFuentes y contribuyentes del artiacuteculo 18Fuentes de imagen Licencias y contribuyentes 19

Licencias de artiacuteculosLicencia 20

Programa informaacutetico 1

Programa informaacuteticoUn programa informaacutetico es un conjunto de instrucciones que una vez ejecutadas realizaraacuten una o varias tareas enuna computadora Sin programas estas maacutequinas no pueden funcionar correctamente[1] [2] Al conjunto general deprogramas se lo denomina software y asiacute se refiere al equipamiento loacutegico o soporte loacutegico de una computadoradigitalEn informaacutetica se los denomina comuacutenmente binarios (propio en sistemas unix donde debido a la estructura deeste uacuteltimo los ficheros no necesitan hacer uso de extensiones Posteriormente los presentaron como ficherosejecutables con extensioacuten exe en los sistemas operativos de la familia Windows) debido a que una vez que hanpasado por el proceso de compilacioacuten y han sido creados las instrucciones que se escribieron en un lenguaje deprogramacioacuten que los humanos usan para escribirlos con mayor facilidad se han traducido al uacutenico idioma que lamaacutequina comprende combinaciones de ceros y unos llamada coacutedigo maacutequina El mismo teacutermino puede referirsetanto a un programa ejecutable como a su coacutedigo fuente el cual es transformado en un binario cuando es compiladoGeneralmente el coacutedigo fuente lo escriben profesionales conocidos como programadores Se escribe en un lenguajeque sigue uno de los siguientes dos paradigmas imperativo o declarativo y que posteriormente puede ser convertidoen una imagen ejecutable por un compilador Cuando se pide que el programa sea ejecutado el procesador ejecutainstruccioacuten por instruccioacutenDe acuerdo a sus funciones se clasifican en software de sistema y software de aplicacioacuten En los computadoresactuales al hecho de ejecutar varios programas de forma simultaacutenea y eficiente se le conoce como multitarea

EjecucioacutenUna vez escritos pueden ser ejecutados de diversas formasbull Mediante un programa que va adaptando las instrucciones conforme son encontradas A este proceso se lo llama

interpretar y a los programas que lo hacen se los conoce como inteacuterpretes Ejemplos de esto son bash claacutesico enestaciones Unix y que fue escrito para el proyecto GNU o Python cuya peculiaridad ademaacutes de sermultipropoacutesito estaacute en su facilidad de uso y productividad y de hecho es usado en parte de los proyectos Googley Youtube[3]

bull Traduciendo el coacutedigo escrito del programa (lo que se denomina coacutedigo fuente) a su equivalente en lenguajemaacutequina A este proceso se le llama compilar y al programa traductor se le denomina compilador Ejemplos deesto son El lenguaje C que combina en su sintaxis caracteriacutesticas de medio y bajo nivel y el compilador gccusado en el proyecto GNU

Programas que se auto-modificanUn programa en ejecucioacuten se trata de forma diferente que los datos en los cuales opera De cualquier forma enalgunos casos eacutesta distincioacuten es ambigua especialmente cuando un programa se modifica a siacute mismo El programamodificado es secuencialmente ejecutado como parte del mismo programa Se pueden escribir programasauto-modificables en lenguajes como Lisp COBOL y Prolog

Ejecucioacuten y almacenamiento de los programasTiacutepicamente los programas se almacenan en una memoria no volaacutetil (por ejemplo un disco) para que luego el usuario de la computadora directa o indirectamente solicite su ejecucioacuten Al momento de dicha solicitud el programa es cargado en la memoria de acceso aleatorio o RAM del equipo bajo el control del software llamado sistema operativo el cual puede acceder directamente al procesador El procesador ejecuta (corre) el programa instruccioacuten por instruccioacuten hasta que termina A un programa en ejecucioacuten se le suele llamar tambieacuten proceso Un programa puede terminar su ejecucioacuten en forma normal o por causa de un error dicho error puede ser de software o

Programa informaacutetico 2

de hardware

Programas empotrados en hardware

El microcontrolador a la derecha de la Memoria USB estaacutecontrolada por un firmware empotrado

Algunos programas estaacuten empotrados en el hardware Unacomputadora con arquitectura de programas almacenadosrequiere un programa inicial almacenado en su ROM paraarrancar El proceso de arranque es para identificar einicializar todos los aspectos del sistema desde los registrosdel procesador controladores de dispositivos hasta elcontenido de la memoria RAM[4] Seguido del proceso deinicializacioacuten este programa inicial carga al sistemaoperativo e inicializa al contador de programa para empezarlas operaciones normales Independiente de la computadoraun dispositivo de hardware podriacutea tener firmwareempotrado para el control de sus operaciones El firmwarese utiliza cuando se espera que el programa cambie en rarasocasiones o nunca o cuando el programa no debe perderse

cuando haya ausencia de energiacutea[5]

Programas cargados manualmente

Interruptores para la carga manual en una Data General Nova 3

Los programas histoacutericamente se cargaron manualmente alprocesador central mediante interruptores Una instruccioacutenera representada por una configuracioacuten de estado abierto ocerrado de los interruptores Despueacutes de establecer laconfiguracioacuten se ejecutaba un botoacuten de ejecucioacuten Esteproceso era repetitivo Tambieacuten histoacutericamente losprogramas se cargaban manualmente mediante una cinta depapel o tarjetas perforadas Despueacutes de que el programa secargaba la direccioacuten de inicio se estableciacutea medianteinterruptores y el botoacuten de ejecucioacuten se presionaba[6]

Programas generados automaacuteticamente

La programacioacuten automaacutetica es un estilo de programacioacuten que crea coacutedigo fuente mediante clases geneacutericasprototipos plantillas aspectos y generadores de coacutedigo para aumentar la productividad del programador El coacutedigofuente se genera con herramientas de programacioacuten tal como un procesador de plantilla o un IDE La forma maacutessimple de un generador de coacutedigo fuente es un procesador macro tal como el preprocesador de C que reemplazapatrones de coacutedigo fuente de acuerdo a reglas relativamente simples

Un motor de software da de salida coacutedigo fuente o lenguaje de marcado que simultaacuteneamente se vuelve la entrada deotro proceso informaacutetico Podemos pensar como analogiacutea un proceso manejando a otro siendo el coacutedigo maacutequinaquemado como combustible Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente Por ejemplo un software para wikis es un sevidor de aplicaciones que permite a los usuariosdesarrollar contenido dinaacutemico ensamblado a partir de artiacuteculos Las Wikis generan HTML CSS Java y Javascriptlos cuales son interpretados por un navegador web

Programa informaacutetico 3

Ejecucioacuten simultaacuteneaVeacuteanse tambieacuten Proceso (informaacutetica) y Multiprocesamiento

Muchos programas pueden correr simultaacuteneamente en la misma computadora a lo cual se le conoce como multitareay puede lograrse a traveacutes de mecanismos de software o de hardware Los sistemas operativos modernos puedencorrer varios programas a traveacutes del planificador de procesos mdash un mecanismo de software para conmutar confrecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programamientras estos estaacuten corriendo[7] Tambieacuten se puede lograr la multitarea por medio del hardware las computadorasmodernas que usan varios procesadores o procesadores con varios nuacutecleos pueden correr muchos programas a lavez[8]

Categoriacuteas funcionalesLos programas se pueden categorizar seguacuten liacuteneas funcionales Estas categoriacuteas funcionales son software de sistemay software de aplicacioacuten El software de sistema incluye al sistema operativo el cual acopla el hardware con elsoftware de aplicacioacuten[9] El propoacutesito del sistema operativo es proveer un ambiente en el cual el software deaplicacioacuten se ejecuta de una manera conveniente y eficiente[9] Ademaacutes del sistema operativo el software de sistemaincluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software desistema entonces es software de aplicacioacuten El middleware tambieacuten es un software de aplicacioacuten que acopla elsoftware de sistema con la interfaz de usuario Tambieacuten son software de aplicacioacuten los programas utilitarios queayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento

Veacutease tambieacutenbull Softwarebull Lenguajes de programacioacuten

Bibliografiacuteabull Knuth Donald E (1997) The Art of Computer Programming Volume 1 3rd Edition Boston Addison-Wesley

ISBN 0-201-89683-4 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 2 3rd Edition Boston Addison-Wesley

ISBN 0-201-89684-2 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 3 3rd Edition Boston Addison-Wesley

ISBN 0-201-89685-0 (en ingleacutes)

Referencias[1] Stair Ralph M et al (2003) Principles of Information Systems Sixth Edition Thomson Learning Inc pp 132 ISBN 0-619-06489-7 (en

ingleacutes)[2] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 58 ISBN 0-201-50480-4 (en ingleacutes)[3] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[4] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 30 ISBN 0-201-50480-4 (en ingleacutes)[5] Tanenbaum Andrew S (1990) Structured Computer Organization Third Edition Prentice Hall pp 11 ISBN 0-13-854662-2 (en ingleacutes)[6] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 6 ISBN 0-201-50480-4 (en ingleacutes)[7] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 100 ISBN 0-201-50480-4 (en ingleacutes)[8] Akhter Shameem (2006) Multi-Core Programming Richard Bowles (Intel Press) pp 11-13 ISBN 0-9764832-4-6 (en ingleacutes)[9] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 1 ISBN 0-201-50480-4 (en ingleacutes)

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Programa informaacutetico 1

Programa informaacuteticoUn programa informaacutetico es un conjunto de instrucciones que una vez ejecutadas realizaraacuten una o varias tareas enuna computadora Sin programas estas maacutequinas no pueden funcionar correctamente[1] [2] Al conjunto general deprogramas se lo denomina software y asiacute se refiere al equipamiento loacutegico o soporte loacutegico de una computadoradigitalEn informaacutetica se los denomina comuacutenmente binarios (propio en sistemas unix donde debido a la estructura deeste uacuteltimo los ficheros no necesitan hacer uso de extensiones Posteriormente los presentaron como ficherosejecutables con extensioacuten exe en los sistemas operativos de la familia Windows) debido a que una vez que hanpasado por el proceso de compilacioacuten y han sido creados las instrucciones que se escribieron en un lenguaje deprogramacioacuten que los humanos usan para escribirlos con mayor facilidad se han traducido al uacutenico idioma que lamaacutequina comprende combinaciones de ceros y unos llamada coacutedigo maacutequina El mismo teacutermino puede referirsetanto a un programa ejecutable como a su coacutedigo fuente el cual es transformado en un binario cuando es compiladoGeneralmente el coacutedigo fuente lo escriben profesionales conocidos como programadores Se escribe en un lenguajeque sigue uno de los siguientes dos paradigmas imperativo o declarativo y que posteriormente puede ser convertidoen una imagen ejecutable por un compilador Cuando se pide que el programa sea ejecutado el procesador ejecutainstruccioacuten por instruccioacutenDe acuerdo a sus funciones se clasifican en software de sistema y software de aplicacioacuten En los computadoresactuales al hecho de ejecutar varios programas de forma simultaacutenea y eficiente se le conoce como multitarea

EjecucioacutenUna vez escritos pueden ser ejecutados de diversas formasbull Mediante un programa que va adaptando las instrucciones conforme son encontradas A este proceso se lo llama

interpretar y a los programas que lo hacen se los conoce como inteacuterpretes Ejemplos de esto son bash claacutesico enestaciones Unix y que fue escrito para el proyecto GNU o Python cuya peculiaridad ademaacutes de sermultipropoacutesito estaacute en su facilidad de uso y productividad y de hecho es usado en parte de los proyectos Googley Youtube[3]

bull Traduciendo el coacutedigo escrito del programa (lo que se denomina coacutedigo fuente) a su equivalente en lenguajemaacutequina A este proceso se le llama compilar y al programa traductor se le denomina compilador Ejemplos deesto son El lenguaje C que combina en su sintaxis caracteriacutesticas de medio y bajo nivel y el compilador gccusado en el proyecto GNU

Programas que se auto-modificanUn programa en ejecucioacuten se trata de forma diferente que los datos en los cuales opera De cualquier forma enalgunos casos eacutesta distincioacuten es ambigua especialmente cuando un programa se modifica a siacute mismo El programamodificado es secuencialmente ejecutado como parte del mismo programa Se pueden escribir programasauto-modificables en lenguajes como Lisp COBOL y Prolog

Ejecucioacuten y almacenamiento de los programasTiacutepicamente los programas se almacenan en una memoria no volaacutetil (por ejemplo un disco) para que luego el usuario de la computadora directa o indirectamente solicite su ejecucioacuten Al momento de dicha solicitud el programa es cargado en la memoria de acceso aleatorio o RAM del equipo bajo el control del software llamado sistema operativo el cual puede acceder directamente al procesador El procesador ejecuta (corre) el programa instruccioacuten por instruccioacuten hasta que termina A un programa en ejecucioacuten se le suele llamar tambieacuten proceso Un programa puede terminar su ejecucioacuten en forma normal o por causa de un error dicho error puede ser de software o

Programa informaacutetico 2

de hardware

Programas empotrados en hardware

El microcontrolador a la derecha de la Memoria USB estaacutecontrolada por un firmware empotrado

Algunos programas estaacuten empotrados en el hardware Unacomputadora con arquitectura de programas almacenadosrequiere un programa inicial almacenado en su ROM paraarrancar El proceso de arranque es para identificar einicializar todos los aspectos del sistema desde los registrosdel procesador controladores de dispositivos hasta elcontenido de la memoria RAM[4] Seguido del proceso deinicializacioacuten este programa inicial carga al sistemaoperativo e inicializa al contador de programa para empezarlas operaciones normales Independiente de la computadoraun dispositivo de hardware podriacutea tener firmwareempotrado para el control de sus operaciones El firmwarese utiliza cuando se espera que el programa cambie en rarasocasiones o nunca o cuando el programa no debe perderse

cuando haya ausencia de energiacutea[5]

Programas cargados manualmente

Interruptores para la carga manual en una Data General Nova 3

Los programas histoacutericamente se cargaron manualmente alprocesador central mediante interruptores Una instruccioacutenera representada por una configuracioacuten de estado abierto ocerrado de los interruptores Despueacutes de establecer laconfiguracioacuten se ejecutaba un botoacuten de ejecucioacuten Esteproceso era repetitivo Tambieacuten histoacutericamente losprogramas se cargaban manualmente mediante una cinta depapel o tarjetas perforadas Despueacutes de que el programa secargaba la direccioacuten de inicio se estableciacutea medianteinterruptores y el botoacuten de ejecucioacuten se presionaba[6]

Programas generados automaacuteticamente

La programacioacuten automaacutetica es un estilo de programacioacuten que crea coacutedigo fuente mediante clases geneacutericasprototipos plantillas aspectos y generadores de coacutedigo para aumentar la productividad del programador El coacutedigofuente se genera con herramientas de programacioacuten tal como un procesador de plantilla o un IDE La forma maacutessimple de un generador de coacutedigo fuente es un procesador macro tal como el preprocesador de C que reemplazapatrones de coacutedigo fuente de acuerdo a reglas relativamente simples

Un motor de software da de salida coacutedigo fuente o lenguaje de marcado que simultaacuteneamente se vuelve la entrada deotro proceso informaacutetico Podemos pensar como analogiacutea un proceso manejando a otro siendo el coacutedigo maacutequinaquemado como combustible Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente Por ejemplo un software para wikis es un sevidor de aplicaciones que permite a los usuariosdesarrollar contenido dinaacutemico ensamblado a partir de artiacuteculos Las Wikis generan HTML CSS Java y Javascriptlos cuales son interpretados por un navegador web

Programa informaacutetico 3

Ejecucioacuten simultaacuteneaVeacuteanse tambieacuten Proceso (informaacutetica) y Multiprocesamiento

Muchos programas pueden correr simultaacuteneamente en la misma computadora a lo cual se le conoce como multitareay puede lograrse a traveacutes de mecanismos de software o de hardware Los sistemas operativos modernos puedencorrer varios programas a traveacutes del planificador de procesos mdash un mecanismo de software para conmutar confrecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programamientras estos estaacuten corriendo[7] Tambieacuten se puede lograr la multitarea por medio del hardware las computadorasmodernas que usan varios procesadores o procesadores con varios nuacutecleos pueden correr muchos programas a lavez[8]

Categoriacuteas funcionalesLos programas se pueden categorizar seguacuten liacuteneas funcionales Estas categoriacuteas funcionales son software de sistemay software de aplicacioacuten El software de sistema incluye al sistema operativo el cual acopla el hardware con elsoftware de aplicacioacuten[9] El propoacutesito del sistema operativo es proveer un ambiente en el cual el software deaplicacioacuten se ejecuta de una manera conveniente y eficiente[9] Ademaacutes del sistema operativo el software de sistemaincluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software desistema entonces es software de aplicacioacuten El middleware tambieacuten es un software de aplicacioacuten que acopla elsoftware de sistema con la interfaz de usuario Tambieacuten son software de aplicacioacuten los programas utilitarios queayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento

Veacutease tambieacutenbull Softwarebull Lenguajes de programacioacuten

Bibliografiacuteabull Knuth Donald E (1997) The Art of Computer Programming Volume 1 3rd Edition Boston Addison-Wesley

ISBN 0-201-89683-4 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 2 3rd Edition Boston Addison-Wesley

ISBN 0-201-89684-2 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 3 3rd Edition Boston Addison-Wesley

ISBN 0-201-89685-0 (en ingleacutes)

Referencias[1] Stair Ralph M et al (2003) Principles of Information Systems Sixth Edition Thomson Learning Inc pp 132 ISBN 0-619-06489-7 (en

ingleacutes)[2] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 58 ISBN 0-201-50480-4 (en ingleacutes)[3] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[4] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 30 ISBN 0-201-50480-4 (en ingleacutes)[5] Tanenbaum Andrew S (1990) Structured Computer Organization Third Edition Prentice Hall pp 11 ISBN 0-13-854662-2 (en ingleacutes)[6] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 6 ISBN 0-201-50480-4 (en ingleacutes)[7] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 100 ISBN 0-201-50480-4 (en ingleacutes)[8] Akhter Shameem (2006) Multi-Core Programming Richard Bowles (Intel Press) pp 11-13 ISBN 0-9764832-4-6 (en ingleacutes)[9] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 1 ISBN 0-201-50480-4 (en ingleacutes)

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Programa informaacutetico 2

de hardware

Programas empotrados en hardware

El microcontrolador a la derecha de la Memoria USB estaacutecontrolada por un firmware empotrado

Algunos programas estaacuten empotrados en el hardware Unacomputadora con arquitectura de programas almacenadosrequiere un programa inicial almacenado en su ROM paraarrancar El proceso de arranque es para identificar einicializar todos los aspectos del sistema desde los registrosdel procesador controladores de dispositivos hasta elcontenido de la memoria RAM[4] Seguido del proceso deinicializacioacuten este programa inicial carga al sistemaoperativo e inicializa al contador de programa para empezarlas operaciones normales Independiente de la computadoraun dispositivo de hardware podriacutea tener firmwareempotrado para el control de sus operaciones El firmwarese utiliza cuando se espera que el programa cambie en rarasocasiones o nunca o cuando el programa no debe perderse

cuando haya ausencia de energiacutea[5]

Programas cargados manualmente

Interruptores para la carga manual en una Data General Nova 3

Los programas histoacutericamente se cargaron manualmente alprocesador central mediante interruptores Una instruccioacutenera representada por una configuracioacuten de estado abierto ocerrado de los interruptores Despueacutes de establecer laconfiguracioacuten se ejecutaba un botoacuten de ejecucioacuten Esteproceso era repetitivo Tambieacuten histoacutericamente losprogramas se cargaban manualmente mediante una cinta depapel o tarjetas perforadas Despueacutes de que el programa secargaba la direccioacuten de inicio se estableciacutea medianteinterruptores y el botoacuten de ejecucioacuten se presionaba[6]

Programas generados automaacuteticamente

La programacioacuten automaacutetica es un estilo de programacioacuten que crea coacutedigo fuente mediante clases geneacutericasprototipos plantillas aspectos y generadores de coacutedigo para aumentar la productividad del programador El coacutedigofuente se genera con herramientas de programacioacuten tal como un procesador de plantilla o un IDE La forma maacutessimple de un generador de coacutedigo fuente es un procesador macro tal como el preprocesador de C que reemplazapatrones de coacutedigo fuente de acuerdo a reglas relativamente simples

Un motor de software da de salida coacutedigo fuente o lenguaje de marcado que simultaacuteneamente se vuelve la entrada deotro proceso informaacutetico Podemos pensar como analogiacutea un proceso manejando a otro siendo el coacutedigo maacutequinaquemado como combustible Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente Por ejemplo un software para wikis es un sevidor de aplicaciones que permite a los usuariosdesarrollar contenido dinaacutemico ensamblado a partir de artiacuteculos Las Wikis generan HTML CSS Java y Javascriptlos cuales son interpretados por un navegador web

Programa informaacutetico 3

Ejecucioacuten simultaacuteneaVeacuteanse tambieacuten Proceso (informaacutetica) y Multiprocesamiento

Muchos programas pueden correr simultaacuteneamente en la misma computadora a lo cual se le conoce como multitareay puede lograrse a traveacutes de mecanismos de software o de hardware Los sistemas operativos modernos puedencorrer varios programas a traveacutes del planificador de procesos mdash un mecanismo de software para conmutar confrecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programamientras estos estaacuten corriendo[7] Tambieacuten se puede lograr la multitarea por medio del hardware las computadorasmodernas que usan varios procesadores o procesadores con varios nuacutecleos pueden correr muchos programas a lavez[8]

Categoriacuteas funcionalesLos programas se pueden categorizar seguacuten liacuteneas funcionales Estas categoriacuteas funcionales son software de sistemay software de aplicacioacuten El software de sistema incluye al sistema operativo el cual acopla el hardware con elsoftware de aplicacioacuten[9] El propoacutesito del sistema operativo es proveer un ambiente en el cual el software deaplicacioacuten se ejecuta de una manera conveniente y eficiente[9] Ademaacutes del sistema operativo el software de sistemaincluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software desistema entonces es software de aplicacioacuten El middleware tambieacuten es un software de aplicacioacuten que acopla elsoftware de sistema con la interfaz de usuario Tambieacuten son software de aplicacioacuten los programas utilitarios queayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento

Veacutease tambieacutenbull Softwarebull Lenguajes de programacioacuten

Bibliografiacuteabull Knuth Donald E (1997) The Art of Computer Programming Volume 1 3rd Edition Boston Addison-Wesley

ISBN 0-201-89683-4 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 2 3rd Edition Boston Addison-Wesley

ISBN 0-201-89684-2 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 3 3rd Edition Boston Addison-Wesley

ISBN 0-201-89685-0 (en ingleacutes)

Referencias[1] Stair Ralph M et al (2003) Principles of Information Systems Sixth Edition Thomson Learning Inc pp 132 ISBN 0-619-06489-7 (en

ingleacutes)[2] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 58 ISBN 0-201-50480-4 (en ingleacutes)[3] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[4] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 30 ISBN 0-201-50480-4 (en ingleacutes)[5] Tanenbaum Andrew S (1990) Structured Computer Organization Third Edition Prentice Hall pp 11 ISBN 0-13-854662-2 (en ingleacutes)[6] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 6 ISBN 0-201-50480-4 (en ingleacutes)[7] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 100 ISBN 0-201-50480-4 (en ingleacutes)[8] Akhter Shameem (2006) Multi-Core Programming Richard Bowles (Intel Press) pp 11-13 ISBN 0-9764832-4-6 (en ingleacutes)[9] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 1 ISBN 0-201-50480-4 (en ingleacutes)

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Programa informaacutetico 3

Ejecucioacuten simultaacuteneaVeacuteanse tambieacuten Proceso (informaacutetica) y Multiprocesamiento

Muchos programas pueden correr simultaacuteneamente en la misma computadora a lo cual se le conoce como multitareay puede lograrse a traveacutes de mecanismos de software o de hardware Los sistemas operativos modernos puedencorrer varios programas a traveacutes del planificador de procesos mdash un mecanismo de software para conmutar confrecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programamientras estos estaacuten corriendo[7] Tambieacuten se puede lograr la multitarea por medio del hardware las computadorasmodernas que usan varios procesadores o procesadores con varios nuacutecleos pueden correr muchos programas a lavez[8]

Categoriacuteas funcionalesLos programas se pueden categorizar seguacuten liacuteneas funcionales Estas categoriacuteas funcionales son software de sistemay software de aplicacioacuten El software de sistema incluye al sistema operativo el cual acopla el hardware con elsoftware de aplicacioacuten[9] El propoacutesito del sistema operativo es proveer un ambiente en el cual el software deaplicacioacuten se ejecuta de una manera conveniente y eficiente[9] Ademaacutes del sistema operativo el software de sistemaincluye programas utilitarios que ayudan a manejar y configurar la computadora Si un programa no es software desistema entonces es software de aplicacioacuten El middleware tambieacuten es un software de aplicacioacuten que acopla elsoftware de sistema con la interfaz de usuario Tambieacuten son software de aplicacioacuten los programas utilitarios queayudan a los usuarios a resolver problemas de aplicaciones como por ejemplo la necesidad de ordenamiento

Veacutease tambieacutenbull Softwarebull Lenguajes de programacioacuten

Bibliografiacuteabull Knuth Donald E (1997) The Art of Computer Programming Volume 1 3rd Edition Boston Addison-Wesley

ISBN 0-201-89683-4 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 2 3rd Edition Boston Addison-Wesley

ISBN 0-201-89684-2 (en ingleacutes)bull Knuth Donald E (1997) The Art of Computer Programming Volume 3 3rd Edition Boston Addison-Wesley

ISBN 0-201-89685-0 (en ingleacutes)

Referencias[1] Stair Ralph M et al (2003) Principles of Information Systems Sixth Edition Thomson Learning Inc pp 132 ISBN 0-619-06489-7 (en

ingleacutes)[2] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 58 ISBN 0-201-50480-4 (en ingleacutes)[3] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[4] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 30 ISBN 0-201-50480-4 (en ingleacutes)[5] Tanenbaum Andrew S (1990) Structured Computer Organization Third Edition Prentice Hall pp 11 ISBN 0-13-854662-2 (en ingleacutes)[6] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 6 ISBN 0-201-50480-4 (en ingleacutes)[7] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 100 ISBN 0-201-50480-4 (en ingleacutes)[8] Akhter Shameem (2006) Multi-Core Programming Richard Bowles (Intel Press) pp 11-13 ISBN 0-9764832-4-6 (en ingleacutes)[9] Silberschatz Abraham (1994) Operating System Concepts Fourth Edition Addison-Wesley pp 1 ISBN 0-201-50480-4 (en ingleacutes)

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 4

Sistema operativo

Intereaccion entre el SO con el resto de las partes

Estimacioacuten del uso de sistemas operativos seguacutenuna muestra de computadoras con acceso a

Internet en Noviembre de 2009 (FuenteW3counter [1])

Un Sistema operativo (SO) es un software que actuacutea de interfaz entrelos dispositivos de hardware y los programas usados por el usuariopara manejar un computador[2] Es responsable de gestionar coordinarlas actividades y llevar a cabo el intercambio de los recursos y actuacuteacomo estacioacuten para las aplicaciones que se ejecutan en la maacutequina

Uno de los maacutes prominentes ejemplos de sistema operativo es elnuacutecleo Linux[3] el cual junto a las herramientas GNU forman lasllamadas distribuciones Linux

Noacutetese que es un error comuacuten muy extendido denominar al conjuntocompleto de herramientas sistema operativo pues este es soacutelo elnuacutecleo y no necesita de entorno operador para estar operativo yfuncional[4] [5] Este error de precisioacuten se debe a la modernizacioacuten dela informaacutetica llevada a cabo a finales de los 80 cuando la filosofiacutea deestructura baacutesica de funcionamiento de los grandes computadores [6] seredisentildeoacute a fin de llevarla a los hogares y facilitar su uso cambiando elconcepto de computador multiusuario (muchos usuarios al mismotiempo) por un sistema monousuario (uacutenicamente un usuario al mismotiempo) maacutes sencillo de gestionar[7] (Veacutease AmigaOS beOS o MacOScomo los pioneros[8] de dicha modernizacioacuten cuando los Amigafueron bautizados con el sobrenombre de Video Toasters[9] por sucapacidad para la Edicioacuten de viacutedeo en entorno multitarea round robincon gestioacuten de miles de colores e interfaces intuitivos para disentildeo en3D con programas como Imagine[10] o Scala multimedia entre muchosotros)[11]

Uno de los propoacutesitos de un sistema operativo como programa estacioacutenprincipal consiste en gestionar los recursos de localizacioacuten yproteccioacuten de acceso del hardware hecho que alivia a losprogramadores de aplicaciones de tener que tratar con estos detalles Seencuentran en la mayoriacutea de los aparatos electroacutenicos que utilizanmicroprocesadores para funcionar (teleacutefonos moacuteviles reproductores de DVD computadoras radios etc)

Parte de la infraestructura de la World Wide Web estaacute compuesta por el Sistema Operativo de Internet creado porCisco Systems para gestionar equipos de interconexioacuten como los conmutadores y los enrutadores[12]

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 5

Perspectiva histoacutericaLos primeros sistemas (1945 - 1950) eran grandes maacutequinas operadas desde la consola maestra por losprogramadores Durante la deacutecada siguiente (1950 - 1960) se llevaron a cabo avances en el hardware lectoras detarjetas impresoras cintas magneacuteticas etc Esto a su vez provocoacute un avance en el software compiladoresensambladores cargadores manejadores de dispositivos etcA finales de los antildeos 80 un Amiga equipado con una aceleradora Video Toaster era capaz de producir efectoscomparados a sistemas dedicados que costaban el triple Un Video Toaster junto a Lightwave ayudoacute a producirmuchos programas de televisioacuten y peliacuteculas entre las que se incluyen Babylon 5 Seaquest DSV y Terminator II[13]

Problemas de explotacioacuten y soluciones inicialesEl problema principal de los primeros sistemas era la baja utilizacioacuten de los mismos la primera solucioacuten fue ponerun operador profesional que lo manejase con lo que se eliminaron las hojas de reserva se ahorroacute tiempo y seaumentoacute la velocidadPara ello los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento porlotes (batch) sin automatizar

Monitores residentes

Fichas en lenguaje de procesamiento por lotescon programa y datos para ejecucioacuten secuencial

Seguacuten fue avanzando la complejidad de los programas fue necesarioimplementar soluciones que automatizaran la organizacioacuten de tareassin necesidad de un operador Debido a ello se crearon los monitoresresidentes programas que residiacutean en memoria y que gestionaban laejecucioacuten de una cola de trabajos

Un monitor residente estaba compuesto por un cargador un Inteacuterpretede comandos y un Controlador (drivers) para el manejo deentradasalida

Sistemas con almacenamiento temporal de ES

Los avances en el hardware crearon el soporte de interrupciones yposteriormente se llevoacute a cabo un intento de solucioacuten maacutes avanzado solapar la ES de un trabajo con sus propioscaacutelculos por lo que se creoacute el sistema de buffers con el siguiente funcionamiento

bull Un programa escribe su salida en un aacuterea de memoria (buffer 1)bull El monitor residente inicia la salida desde el buffer y el programa de aplicacioacuten calcula depositando la salida en el

buffer 2bull La salida desde el buffer 1 termina y el nuevo caacutelculo tambieacutenbull Se inicia la salida desde el buffer 2 y otro nuevo caacutelculo dirige su salida al buffer 1bull El proceso se puede repetir de nuevoLos problemas surgen si hay muchas maacutes operaciones de caacutelculo que de ES (limitado por la CPU) o si por elcontrario hay muchas maacutes operaciones de ES que caacutelculo (limitado por la ES)

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 6

SpoolersHace aparicioacuten el disco magneacutetico con lo que surgen nuevas soluciones a los problemas de rendimiento Se eliminanlas cintas magneacuteticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un discopuede simular varias cintas) Debido al solapamiento del caacutelculo de un trabajo con la ES de otro trabajo se creantablas en el disco para diferentes tareas lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line)

Sistemas operativos multiprogramadosSurge un nuevo avance en el hardware el hardware con proteccioacuten de memoria Lo que ofrece nuevas soluciones alos problemas de rendimientobull Se solapa el caacutelculo de unos trabajos con la entradasalida de otros trabajosbull Se pueden mantener en memoria varios programasbull Se asigna el uso de la CPU a los diferentes programas en memoriaDebido a los cambios anteriores se producen cambios en el monitor residente con lo que eacuteste debe abordar nuevastareas naciendo lo que se denomina como Sistemas Operativos multiprogramados los cuales cumplen con lassiguientes funcionesbull Administrar la memoriabull Gestionar el uso de la CPU (planificacioacuten)bull Administrar el uso de los dispositivos de ESCuando desempentildea esas tareas el monitor residente se transforma en un sistema operativo multiprogramado

Llamadas al sistema operativoDefinicioacuten breve llamadas que ejecutan los programas de aplicacioacuten para pedir alguacuten servicio al SOCada SO implementa un conjunto propio de llamadas al sistema Ese conjunto de llamadas es la interfaz del SOfrente a las aplicaciones Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO Porello si cambiamos de SO y abrimos un programa disentildeado para trabajar sobre el anterior en general el programa nofuncionaraacute a no ser que el nuevo SO tenga la misma interfaz Para ellobull Las llamadas correspondientes deben tener el mismo formatobull Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior

Modos de ejecucioacuten en un CPULas aplicaciones no deben poder usar todas las instrucciones de la CPU No obstante el SO tiene que poder utilizartodo el juego de instrucciones del CPU Por ello una CPU debe tener (al menos) dos modos de operacioacuten diferentesbull Modo usuario el CPU podraacute ejecutar soacutelo las instrucciones del juego restringido de las aplicacionesbull Modo supervisor la CPU debe poder ejecutar el juego completo de instrucciones

Llamadas al sistemaUna aplicacioacuten normalmente no sabe doacutende estaacute situada la rutina de servicio de la llamada Por lo que si eacutesta secodifica como una llamada de funcioacuten cualquier cambio en el SO hariacutea que hubiera que reconstruir la aplicacioacutenPero lo maacutes importante es que una llamada de funcioacuten no cambia el modo de ejecucioacuten de la CPU Con lo que hayque conseguir llamar a la rutina de servicio sin tener que conocer su ubicacioacuten y hacer que se fuerce un cambio demodo de operacioacuten de la CPU en la llamada (y la recuperacioacuten del modo anterior en el retorno)Esto se hace utilizando instrucciones maacutequina disentildeadas especiacuteficamente para este cometido distintas de las que seusan para las llamadas de funcioacuten

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 7

Bibliotecas de interfaz de llamadas al sistemaLas llamadas al sistema no siempre tienen una expresioacuten sencilla en los lenguajes de alto nivel por ello se crean lasbibliotecas de interfaz que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema Lashay para distintos lenguajes de programacioacutenLa aplicacioacuten llama a una funcioacuten de la biblioteca de interfaz (mediante una llamada normal) y esa funcioacuten es la querealmente hace la llamada al sistema

Interrupciones y excepcionesEl SO ocupa una posicioacuten intermedia entre los programas de aplicacioacuten y el hardware No se limita a utilizar elhardware a peticioacuten de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que seejecute coacutedigo del SO En tales situaciones el hardware debe poder llamar al sistema pudiendo deberse estasllamadas a dos condicionesbull Alguacuten dispositivo de ES necesita atencioacutenbull Se ha producido una situacioacuten de error al intentar ejecutar una instruccioacuten del programa (normalmente de la

aplicacioacuten)En ambos casos la accioacuten realizada no estaacute ordenada por el programa de aplicacioacuten es decir no figura en elprogramaSeguacuten los dos casos anteriores tenemos las interrupciones y la excepcionesbull Interrupcioacuten sentildeal que enviacutea un dispositivo de ES a la CPU para indicar que la operacioacuten de la que se estaba

ocupando ya ha terminadobull Excepcioacuten una situacioacuten de error detectada por la CPU mientras ejecutaba una instruccioacuten que requiere

tratamiento por parte del SO

Tratamiento de las interrupcionesUna interrupcioacuten se trata en todo caso despueacutes de terminar la ejecucioacuten de la instruccioacuten en cursoEl tratamiento depende de cuaacutel sea el dispositivo de ES que ha causado la interrupcioacuten ante la cual debe poderidentificar el dispositivo que la ha causado

Importancia de las interrupcionesEl mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicacioacutenmientras otra permanece a la espera de que concluya una operacioacuten en un dispositivo de ESEl hardware se encarga de avisar al SO cuando el dispositivo de ES ha terminado y el SO puede intervenir entoncessi es conveniente para hacer que el programa que estaba esperando por el dispositivo se continuacutee ejecutandoEn ciertos intervalos de tiempo puede convenir no aceptar sentildeales de interrupcioacuten Por ello las interrupciones puedeninhibirse por programa (aunque esto no deben poder hacerlo las mismas)

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 8

ExcepcionesCuando la CPU intenta ejecutar una instruccioacuten incorrectamente construida la unidad de control lanza unaexcepcioacuten para permitir al SO ejecutar el tratamiento adecuado Al contrario que en una interrupcioacuten la instruccioacutenen curso es abortada Las excepciones al igual que las interrupciones deben estar identificadas

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razonesbull El coacutedigo de operacioacuten puede ser incorrectobull Se intenta realizar alguna operacioacuten no definida como dividir por cerobull La instruccioacuten puede no estar permitida en el modo de ejecucioacuten actualbull La direccioacuten de alguacuten operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso

Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir junto a los modos de ejecucioacuten de la CPUy los mecanismos de proteccioacuten de la memoria que las aplicaciones realicen operaciones que no les estaacutenpermitidas En cualquier caso el tratamiento especiacutefico de una excepcioacuten lo realiza el SOComo en el caso de las interrupciones el hardware se limita a dejar el control al SO y eacuteste es el que trata la situacioacutencomo convengaEs bastante frecuente que el tratamiento de una excepcioacuten no retorne al programa que se estaba ejecutando cuando seprodujo la excepcioacuten sino que el SO aborte la ejecucioacuten de ese programa Este factor depende de la pericia delprogramador para controlar la excepcioacuten adecuadamente

Componentes de un sistema operativo

Gestioacuten de procesosUn proceso es simplemente un programa en ejecucioacuten que necesita recursos para realizar su tarea tiempo de CPUmemoria archivos y dispositivos de ES El SO es el responsable debull Crear y destruir los procesosbull Parar y reanudar los procesosbull Ofrecer mecanismos para que se comuniquen y sincronicenLa gestioacuten de procesos podriacutea ser similar al trabajo de oficina Se puede tener una lista de tareas a realizar y a estasfijarles prioridades alta media baja por ejemplo Debemos comenzar haciendo las tareas de prioridad alta primero ycuando se terminen seguir con las de prioridad media y despueacutes las de baja Una vez realizada la tarea se tacha Estopuede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en lalista para siempre Para solucionar esto se puede asignar alta prioridad a las tareas maacutes antiguas

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 9

Gestioacuten de la memoria principalLa Memoria (informaacutetica) es una gran tabla de palabras o bytes que se referencian cada una mediante una direccioacutenuacutenica Este almaceacuten de datos de raacutepido accesos es compartido por la CPU y los dispositivos de ES es volaacutetil ypierde su contenido en los fallos del sistema El SO es el responsable debull Conocer queacute partes de la memoria estaacuten utilizadas y por quieacutenbull Decidir queacute procesos se cargaraacuten en memoria cuando haya espacio disponiblebull Asignar y reclamar espacio de memoria cuando sea necesario

Gestioacuten del almacenamiento secundarioUn sistema de almacenamiento secundario es necesario ya que la memoria principal (almacenamiento primario) esvolaacutetil y ademaacutes muy pequentildea para almacenar todos los programas y datos Tambieacuten es necesario mantener los datosque no convenga mantener en la memoria principal El SO se encarga debull Planificar los discosbull Gestionar el espacio librebull Asignar el almacenamiento

El sistema de ESConsiste en un sistema de almacenamiento temporal (cacheacute) una interfaz de manejadores de dispositivos y otra paradispositivos concretos El sistema operativo debe gestionar el almacenamiento temporal de ES y servir lasinterrupciones de los dispositivos de ES

Sistema de archivosLos archivos son colecciones de informacioacuten relacionada definidas por sus creadores Eacutestos almacenan programas(en coacutedigo fuente y objeto) y datos tales como imaacutegenes textos informacioacuten de bases de datos etc El SO esresponsable debull Construir y eliminar archivos y directoriosbull Ofrecer funciones para manipular archivos y directoriosbull Establecer la correspondencia entre archivos y unidades de almacenamientobull Realizar copias de seguridad de archivosExisten diferentes Sistemas de Archivos es decir existen diferentes formas de organizar la informacioacuten que sealmacena en las memorias (normalmente discos) de los ordenadores Por ejemplo existen los sistemas de archivosFAT FAT32 EXT2 NTFS etcDesde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista sin embargoexisten diferencias muy importantes Por ejemplo los sistemas de ficheros FAT32 y NTFS que se utilizanfundamentalmente en sistemas operativos de Microsoft tienen una gran diferencia para un usuario que utilice unabase de datos con bastante informacioacuten ya que el tamantildeo maacuteximo de un fichero con un Sistema de Archivos FAT32estaacute limitado a 4 gigabytes sin embargo en un sistema NTFS el tamantildeo es considerablemente mayor

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 10

Sistemas de proteccioacutenMecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema El SO se encarga debull Distinguir entre uso autorizado y no autorizadobull Especificar los controles de seguridad a realizarbull Forzar el uso de estos mecanismos de proteccioacuten

Sistema de comunicacionesPara mantener las comunicaciones con otros sistemas es necesario poder controlar el enviacuteo y recepcioacuten deinformacioacuten a traveacutes de las interfaces de red Tambieacuten hay que crear y mantener puntos de comunicacioacuten que sirvana las aplicaciones para enviar y recibir informacioacuten y crear y mantener conexiones virtuales entre aplicaciones queestaacuten ejecutaacutendose localmente y otras que lo hacen remotamente

Programas de sistemaSon aplicaciones de utilidad que se suministran con el SO pero no forman parte de eacutel Ofrecen un entorno uacutetil para eldesarrollo y ejecucioacuten de programas siendo algunas de las tareas que realizanbull Manipulacioacuten y modificacioacuten de archivosbull Informacioacuten del estado del sistemabull Soporte a lenguajes de programacioacutenbull Comunicaciones

Gestor de recursosComo gestor de recursos el Sistema Operativo administrabull La CPU (Unidad Central de Proceso donde estaacute alojado el microprocesador)bull Los dispositivos de ES (entrada y salida)bull La memoria principal (o de acceso directo)bull Los discos (o memoria secundaria)bull Los procesos (o programas en ejecucioacuten)bull y en general todos los recursos del sistema

Componentes del Sistema Operativo

Caracteriacutesticas

Administracioacuten de tareas

bull Monotarea Solamente puede ejecutar un proceso (aparte de losprocesos del propio SO) en un momento dado Una vez queempieza a ejecutar un proceso continuaraacute hacieacutendolo hasta sufinalizacioacuten yo interrupcioacuten

bull Multitarea Es capaz de ejecutar varios procesos al mismo tiempoEste tipo de SO normalmente asigna los recursos disponibles(CPU memoria perifeacutericos) de forma alternada a los procesos que los solicitan de manera que el usuario percibeque todos funcionan a la vez de forma concurrente

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 11

Administracioacuten de usuariosbull Monousuario Si soacutelo permite ejecutar los programas de un usuario al mismo tiempobull Multiusuario Si permite que varios usuarios ejecuten simultaacuteneamente sus programas accediendo a la vez a los

recursos de la computadora Normalmente estos sistemas operativos utilizan meacutetodos de proteccioacuten de datos demanera que un programa no pueda usar o cambiar los datos de otro usuario

Manejo de recursosbull Centralizado Si permite utilizar los recursos de una sola computadorabull Distribuido Si permite utilizar los recursos (memoria CPU disco perifeacutericos ) de maacutes de una computadora al

mismo tiempo

Veacutease tambieacutenbull AnexoSistemas operativosbull Comparacioacuten de sistemas operativosbull Cronologiacutea de los sistemas operativosbull Historia y evolucioacuten de los sistemas operativosbull Sistema operativo de redbull Software de sistema

Bibliografiacuteabull Oacutebrien James A (2006) Sistemas de Informacioacuten Gerencial Meacutexico DFbull Silberschatz Abraham (2006) Sistemas Operativos Meacutexico ISBN 968-18-6168-X

Enlaces externosbull Wikimedia Commons alberga contenido multimedia sobre Sistema operativoCommonsWikcionariobull Wikcionario tiene definiciones para sistema operativo

bull Wikiversidad alberga proyectos de aprendizaje sobre Sistema operativoWikiversidadbull Sitio de la Caacutetedra Sistemas Operativos Universidad Nacional del Nordeste Argentina [14]bull Sitio de la Caacutetedra Sistemas Operativos Universidad Politeacutecnica de Madrid [15]bull FreeOScom The Resource Center for Free Operating Systems [16] (en ingleacutes)bull Sistema operativo [17] en Google Directorio

Referencias[1] http www w3counter com globalstats php[2] Peacuterez Juan Carlos Sergio Saacuteez (2010) futuradiscaupves (ed) laquo Estudio de un sistema operativo (http futura disca upv es eso es

t1-introduccion gen-t1-introduccion html)raquo (curso) Consultado el 1 de enero de 2010[3] Torvalds Linus (31 de julio) cscmuedu (ed) (correo) Consultado el 31 de enero de 2010[4] The operating system interacts directly with the hardware providing common services to programs and insulating them from hardware

idiosyncrasies Viewing the system as a set of layers the operating system is commonly called the system kernel or just the kernelemphasizing its isolation from user programsMaurice J Bach The design of the unix operating system PrenticeHall 1986 p 4

[5] QNX software systems (ed) laquo QNX Operating System Project overview (http community qnx com sf projects core_os)raquo (en ingleacutes)(2004) Consultado el 10 de febrero de 2010

[6] Cisco Systems (1992) ciscocom (ed) laquo Fundamentos de UNIX (http www cisco com web LA netacad cursos unix html)raquo(certificacioacuten) Consultado el 10 de febrero de 2010

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Sistema operativo 12

[7] laquo Washington Post - Debut de Windows 95 (http www washingtonpost com wp-srv business longterm microsoft stories 1995debut082495 htm)raquo (en ingleacutes)

[8] toastytechcom (ed) laquo BeOS 50 Personal Edition (http toastytech com guis b5pe html)raquo (en ingleacutes) (2010) Consultado el 10 defebrero de 2010

[9] laquo Amiga Video Toaster (http www newtek com support tech faqs amiga index html)raquo (en ingleacutes) NewTek Inc (2010) Consultado el1 de febrero de 2010

[10] CAD Technologies (ed) laquo Imagine 50 for Amiga (http www imaginefa com )raquo (en ingleacutes) (ficha teacutecnica) (1998) Consultado el 10 defebrero de 2010

[11] Delgado Javier (junio) amigamexicoorg (ed) laquo La revolucion del desktop video (http www amigamexico org index php componentcontent article 34-historia 47-el-video-toaster-y-el-flyer html)raquo (html) Consultado el 8 de febrero de 2010

[12] Cisco Systems Inc (ed) laquo Cisco IOS Software Collateral Library (http www cisco com en US products sw iosswrelios_software_collateral_library_listing html)raquo (en ingleacutes) (1992) Consultado el 17 de febrero de 2010

[13] Rabay Francisco amiga-hardwarecom (ed) laquo Newtek Video Toaster 4000 (http www amiga-hardware com showhardwarecgiHARDID=506)raquo (en ingleacutes) Consultado el 6 de febrero de 2010

[14] http exa unne edu ar depar areas informatica SistemasOperativos SOF htm[15] http laurel datsi fi upm es docencia asignaturas so[16] http www freeos com[17] http www google com Top World EspaC3B1ol Computadoras Software Sistemas_operativos

Aplicacioacuten informaacutetica

OpenOfficeorg Writer corriendo en el sistema operativo GNULinux

En informaacutetica una aplicacioacuten es un tipo deprograma informaacutetico disentildeado como herramientapara permitir a un usuario realizar uno o diversostipos de trabajo Esto lo diferencia principalmentede otros tipos de programas como los sistemasoperativos (que hacen funcionar al ordenador) lasutilidades (que realizan tareas de mantenimiento ode uso general) y los lenguajes de programacioacuten(con el cual se crean los programas informaacuteticos)

Suele resultar una solucioacuten informaacutetica para laautomatizacioacuten de ciertas tareas complicadascomo pueden ser la contabilidad la redaccioacuten dedocumentos o la gestioacuten de un almaceacuten Algunosejemplos de programas de aplicacioacuten son los procesadores de textos hojas de caacutelculo y base de datos

Ciertas aplicaciones desarrolladas a medida suelen ofrecer una gran potencia ya que estaacuten exclusivamente disentildeadaspara resolver un problema especiacutefico Otros llamados paquetes integrados de software ofrecen menos potencia peroa cambio incluyen varias aplicaciones como un programa procesador de textos de hoja de caacutelculo y de base dedatosEste diagrama muestra la ubicacioacuten y relacioacuten que tienen estas aplicaciones para con el usuario final y con otrosprogramas informaacuteticos existentesOtros ejemplos de programas de aplicacioacuten pueden ser programas de comunicacioacuten de datos Multimediapresentaciones disentildeo graacutefico caacutelculo finanzas correo electroacutenico compresioacuten de archivos presupuestos de obrasgestioacuten de empresas etcAlgunas compantildeiacuteas agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimaacutetica) que sean satisfactorios para las necesidades maacutes apremiantes del usuario Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario al permitirle hacer cosas uacutetiles con el ordenador (o computadora) algunos con ciertas prestaciones otros con equis disentildeo unos son maacutes amigables o faacuteciles de usar

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Aplicacioacuten informaacutetica 13

que otros pero bajo el mismo principio Un ejemplo comuacuten de estos paquetes es Microsoft Office

Lenguaje de programacioacuten

Captura del microordenador Commodore PET-32 mostrando unprograma en el lenguaje de programacioacuten BASIC bajo el emuladorVICE en una distribucioacuten GNULinux La primera liacutenea titula (rem)

al programa para permitir su almacenamiento la segunda solicitauna cadena de datos (input) que una vez obtenidos almacenaraacute enuna instruccioacuten que el lenguaje lleva incorporada llamada variable

alfanumeacuterica ($) La tercera liacutenea establece una condicioacuten (if)determina que si la cadena de texto almacenada no es igual (ltgt) al

valor dado proceda (then) a ejecutar la liacutenea anterior volviendo asiacute asolicitar nuevos datos pero en caso de ser igual (=) continuacutee

ejecutando la siguiente liacutenea del programa La cuarta liacutenea imprimeel mensaje encomillado en pantalla (print) para terminar con la

quinta liacutenea que establece su fin (end)

Un lenguaje de programacioacuten es un idioma artificialdisentildeado para expresar computaciones que pueden serllevadas a cabo por maacutequinas como las computadorasPueden usarse para crear programas que controlen elcomportamiento fiacutesico y loacutegico de una maacutequina paraexpresar algoritmos con precisioacuten o como modo decomunicacioacuten humana[1] Estaacute formado de un conjuntode siacutembolos y reglas sintaacutecticas y semaacutenticas quedefinen su estructura y el significado de sus elementosy expresiones Al proceso por el cual se escribe seprueba se depura se compila y se mantiene el coacutedigofuente de un programa informaacutetico se le llamaprogramacioacuten

Tambieacuten la palabra programacioacuten se define como elproceso de creacioacuten de un programa de computadoramediante la aplicacioacuten de procedimientos loacutegicos atraveacutes de los siguientes pasos

bull El desarrollo loacutegico del programa para resolver unproblema en particular

bull Escritura de la loacutegica del programa empleando un lenguaje de programacioacuten especiacutefico (codificacioacuten delprograma)

bull Ensamblaje o compilacioacuten del programa hasta convertirlo en lenguaje de maacutequinabull Prueba y depuracioacuten del programabull Desarrollo de la documentacioacutenExiste un error comuacuten que trata por sinoacutenimos los teacuterminos lenguaje de programacioacuten y lenguaje informaacutetico Loslenguajes informaacuteticos engloban a los lenguajes de programacioacuten y a otros maacutes como por ejemplo el HTML(lenguaje para el marcado de paacuteginas web que no es propiamente un lenguaje de programacioacuten sino un conjunto deinstrucciones que permiten disentildear el contenido y el texto de los documentos)

Permite especificar de manera precisa sobre queacute datos debe operar una computadora coacutemo deben ser almacenados otransmitidos y queacute acciones debe tomar bajo una variada gama de circunstancias Todo esto a traveacutes de un lenguajeque intenta estar relativamente proacuteximo al lenguaje humano o natural tal como sucede con el lenguaje Leacutexico Unacaracteriacutestica relevante de los lenguajes de programacioacuten es precisamente que maacutes de un programador pueda usar unconjunto comuacuten de instrucciones que sean comprendidas entre ellos para realizar la construccioacuten del programa deforma colaborativa

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Lenguaje de programacioacuten 14

Historia

Coacutedigo Fortran en una tarjeta perforadamostrando el uso especializado de las columnas

1-5 6 y 73-80

Para que la computadora entienda nuestras instrucciones debe usarseun lenguaje especiacutefico conocido como coacutedigo maacutequina el cual lamaacutequina comprende faacutecilmente pero que lo hace excesivamentecomplicado para las personas De hecho soacutelo consiste en cadenasextensas de nuacutemeros 0 y 1

Para facilitar el trabajo los primeros operadores de computadorasdecidieron hacer un traductor para reemplazar los 1 y 0 por palabras oabstraccioacuten de palabras y letras provenientes del ingleacutes eacuteste se conocecomo lenguaje ensamblador Por ejemplo para sumar se usa la letra Ade la palabra inglesa add (sumar) En realidad escribir en lenguaje ensamblador es baacutesicamente sigue la mismaestructura del en lenguaje maacutequina pero las letras y palabras son maacutes faacuteciles de recordar y entender que los nuacutemeros

La necesidad de recordar secuencias de programacioacuten para las acciones usuales llevoacute a denominarlas con nombresfaacuteciles de memorizar y asociar ADD (sumar) SUB (restar) MUL (multiplicar) CALL (ejecutar subrutina) etc Aesta secuencia de posiciones se le denominoacute instrucciones y a este conjunto de instrucciones se le llamoacute lenguajeensamblador Posteriormente aparecieron diferentes lenguajes de programacioacuten los cuales reciben su denominacioacutenporque tienen una estructura sintaacutectica similar a los lenguajes escritos por los humanos denominados tambieacutenlenguajes de alto nivelLa primera programadora de computadora conocida fue Ada Lovelace hija de Anabella Milbanke Byron y LordByron Anabella introdujo en las matemaacuteticas a Ada quien despueacutes de conocer a Charles Babbage tradujo y amplioacuteuna descripcioacuten de su maacutequina analiacutetica Incluso aunque Babbage nunca completoacute la construccioacuten de cualquiera desus maacutequinas el trabajo que Ada realizoacute con eacutestas le hizo ganarse el tiacutetulo de primera programadora decomputadoras del mundo El nombre del lenguaje de programacioacuten Ada fue escogido como homenaje a estaprogramadoraA finales de 1953 John W Backus sometioacute una propuesta a sus superiores en IBM para desarrollar una alternativamaacutes praacutectica al lenguaje ensamblador para programar el computador central IBM 704 El histoacuterico equipo Fortran deBackus consistioacute en los programadores Richard Goldberg Sheldon F Best Harlan Herrick Peter Sheridan RoyNutt Robert Nelson Irving Ziller Lois Haibt y David Sayre[2]

El primer manual para el lenguaje Fortran aparecioacute en octubre de 1956 con el primer compilador Fortran entregadoen abril de 1957 Esto era un compilador optimizado porque los clientes eran reacios a usar un lenguaje de alto nivela menos que su compilador pudiera generar coacutedigo cuyo desempentildeo fuera comparable al de un coacutedigo hecho a manoen lenguaje ensambladorEn 1960 se creoacute COBOL uno de los lenguajes usados aun en 2010 en informaacutetica de gestioacutenA medida que la complejidad de las tareas que realizaban las computadoras aumentaba se hizo necesario disponer deun meacutetodo maacutes eficiente para programarlas Entonces se crearon los lenguajes de alto nivel como lo fue el BASICen las versiones introducidas en los microordenadores de la deacutecada de 1980 Mientras que una tarea tan sencillacomo sumar dos nuacutemeros puede necesitar varias instrucciones en lenguaje ensamblador en un lenguaje de alto nivelbastaraacute con solo una

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Lenguaje de programacioacuten 15

Implementacioacuten

Coacutedigo fuente de un programa escrito en el lenguaje deprogramacioacuten Java

La implementacioacuten de un lenguaje es la que provee unamanera de que se ejecute un programa para una determinadacombinacioacuten de software y hardware Existen baacutesicamentedos maneras de implementar un lenguaje Compilacioacuten einterpretacioacuten Compilacioacuten es la traduccioacuten a un coacutedigoque pueda utilizar la maacutequina Los programas traductoresque pueden realizar esta operacioacuten se llaman compiladoresEacutestos como los programas ensambladores avanzadospueden generar muchas liacuteneas de coacutedigo de maacutequina porcada proposicioacuten del programa fuente

Se puede tambieacuten utilizar una alternativa para traducirlenguajes de alto nivel En lugar de traducir el programafuente y grabar en forma permanente el coacutedigo objeto quese produce durante la compilacioacuten para utilizarlo en unaejecucioacuten futura el programador soacutelo carga el programafuente en la computadora junto con los datos que se van a procesar A continuacioacuten un programa inteacuterpretealmacenado en el sistema operativo del disco o incluido de manera permanente dentro de la maacutequina convierte cadaproposicioacuten del programa fuente en lenguaje de maacutequina conforme vaya siendo necesario durante el procesamientode los datos El coacutedigo objeto no se graba para utilizarlo posteriormente

La siguiente vez que se utilice una instruccioacuten se la deberaacute interpretar otra vez y traducir a lenguaje maacutequina Porejemplo durante el procesamiento repetitivo de los pasos de un ciclo o bucle cada instruccioacuten del bucle tendraacute quevolver a ser interpretada en cada ejecucioacuten repetida del ciclo lo cual hace que el programa sea maacutes lento en tiempode ejecucioacuten (porque se va revisando el coacutedigo en tiempo de ejecucioacuten) pero maacutes raacutepido en tiempo de disentildeo (porqueno se tiene que estar compilando a cada momento el coacutedigo completo) El inteacuterprete elimina la necesidad de realizaruna compilacioacuten despueacutes de cada modificacioacuten del programa cuando se quiere agregar funciones o corregir errorespero es obvio que un programa objeto compilado con antelacioacuten deberaacute ejecutarse con mucha mayor rapidez que unoque se debe interpretar a cada paso durante una ejecucioacuten del coacutedigoLa mayoriacutea de lenguajes de altonivel permiten la programacioacuten multipropoacutesito sin embargo muchos de ellos fuerondisentildeados para permitir programacioacuten dedicada como lo fue PASCAL con las matemaacuteticas en su comienzoTambieacuten se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simplesinstrucciones permitiacutea mover una tortuga entre otras cosas En el aacutembito de infraestructura de internet cabe destacara Perl con un poderoso sistema de procesamiento de texto y una enorme coleccioacuten de moacutedulos

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Lenguaje de programacioacuten 16

Teacutecnica

Llibros sobre diversos lenguajes de programacioacuten

Para escribir programas que proporcionen los mejores resultadoscabe tener en cuenta una serie de detallesbull Correccioacuten Un programa es correcto si hace lo que debe hacer

tal y como se establecioacute en las fases previas a su desarrolloPara determinar si un programa hace lo que debe es muyimportante especificar claramente queacute debe hacer el programaantes de desarrollarlo y una vez acabado compararlo con loque realmente hace

bull Claridad Es muy importante que el programa sea lo maacutes claroy legible posible para facilitar asiacute su desarrollo y posteriormantenimiento Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente asiacute comocuidar el estilo en la edicioacuten de esta forma se ve facilitado el trabajo del programador tanto en la fase de creacioacutencomo en las fases posteriores de correccioacuten de errores ampliaciones modificaciones etc Fases que pueden serrealizadas incluso por otro programador con lo cual la claridad es auacuten maacutes necesaria para que otrosprogramadores puedan continuar el trabajo faacutecilmente Algunos programadores llegan incluso a utilizar ArteASCII para delimitar secciones de coacutedigo Otros por diversioacuten o para impedir un anaacutelisis coacutemodo a otrosprogramadores recurren al uso de coacutedigo ofuscado

bull Eficiencia Se trata de que el programa ademaacutes de realizar aquello para lo que fue creado (es decir que seacorrecto) lo haga gestionando de la mejor forma posible los recursos que utiliza Normalmente al hablar deeficiencia de un programa se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sidocreado y a la cantidad de memoria que necesita pero hay otros recursos que tambieacuten pueden ser de consideracioacutenal obtener la eficiencia de un programa dependiendo de su naturaleza (espacio en disco que utiliza traacutefico de redque genera etc)

bull Portabilidad Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma ya seahardware o software diferente a aqueacutella en la que se elaboroacute La portabilidad es una caracteriacutestica muy deseablepara un programa ya que permite por ejemplo a un programa que se ha desarrollado para sistemas GNULinuxejecutarse tambieacuten en la familia de sistemas operativos Windows Esto permite que el programa pueda llegar amaacutes usuarios maacutes faacutecilmente

ParadigmasLos programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos Los principalesparadigmas son imperativos y declarativosLos programas que usan un lenguaje imperativo especifican un algoritmo usan declaraciones expresiones ysentencias[3] Una declaracioacuten asocia un nombre de variable con un tipo de dato por ejemplo var x integer Unaexpresioacuten contiene un valor por ejemplo 2 + 2 contiene el valor 4 Finalmente una sentencia debe asignar unaexpresioacuten a una variable o usar el valor de una variable para alterar el flujo de un programa Por ejemplo x = 2 + 2if x == 4 then haz_algo() Una criacutetica comuacuten en los lenguajes imperativos es el efecto de las sentencias deasignacioacuten sobre una clase de variables llamadas no locales[4]

Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementacioacuten Dos amplias categoriacuteas de lenguajes declarativos son los lenguajes funcionales y los lenguajes loacutegicos Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales asiacute se hacen maacutes faacutecil por ejemplo programas como funciones matemaacuteticas[4] El principio detraacutes de los lenguajes loacutegicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solucioacuten a el sistema de Prolog[5] El objetivo es definido dando una lista de sub-objetivos Cada

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Lenguaje de programacioacuten 17

sub-objetivo tambieacuten se define dando una lista de sus sub-objetivos etceacutetera Si al tratar de buscar una solucioacuten unaruta de sub-objetivos falla entonces tal sub-objetivo se descarta y sistemaacuteticamente se prueba otra rutaLa forma en la cual es programa se crea puede ser por medio de texto o de forma visual En un lenguaje deprogramacioacuten visual los elementos son manipulados graacuteficamente en vez de especificarse por medio de texto

Veacutease tambieacutenbull Lenguajes esoteacutericos

Enlaces externosbull Wikiversidad alberga proyectos de aprendizaje sobre Lenguaje de programacioacutenWikiversidadWikilibrosbull Wikilibros alberga un libro o manual sobre Fundamentos de programacioacutenbull Programacioacuten TV [6]

bull Wikiquote alberga frases ceacutelebres de o sobre Lenguaje de programacioacuten Wikiquotebull Aacuterbol genealoacutegico de los lenguajes de programacioacuten [7]

bull Aacuterbol cronoloacutegico de los lenguajes de programacioacuten [8] (en ingleacutes)bull Lista de lenguajes de programacioacuten [9] (en ingleacutes)bull Paradigmas de los lenguajes de programacioacuten [10] (clasificacioacuten)

Referencias[1] [ Mark (http www oreillynet com pub au 446|Lutz)] (2010) OReilly Media Inc (ed) laquo Learning Python Fourth Edition (http

oreilly com catalog 9780596158071)raquo (libro) OReilly Consultado el 11 de febrero de 2010[2] http www softwarepreservation org projects FORTRAN index htmlBy_FORTRAN_project_members[3] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 75 ISBN 0-201-56885-3 (en ingleacutes)[4] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 213 ISBN 0-201-56885-3 (en

ingleacutes)[5] Wilson Leslie B (1993) Comparative Programming Languages Second Edition Addison-Wesley pp 244 ISBN 0-201-56885-3 (en

ingleacutes)[6] http www 24 tv guia[7] http www levenez com lang history html[8] http www levenez com lang[9] http people ku edu ~nkinners LangList Extras langlist htm[10] http www alegsaonline com art 13 php

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Fuentes y contribuyentes del artiacuteculo 18

Fuentes y contribuyentes del artiacuteculoPrograma informaacutetico Fuente httpeswikipediaorgwindexphpoldid=36178878 Contribuyentes Amanuense Axelaxel Baiji Biasoli Cratoacuten David0811 Dferg Diegusjaimes Elabrasanchez GermanX Gsrdzl HUB Humberto Isha Javierito92 Jgomo3 Jugones55 Lucien leGrey Matdrodes Mikiguti Nagul Nixoacuten PoLuX124 Queninosta RoyFocker Rudol0075SergioN Shooke Spirit-Black-Wikipedista Taichi Tirithel Vitamine VityUvieu Wilfredor 60 ediciones anoacutenimas

Sistema operativo Fuente httpeswikipediaorgwindexphpoldid=36307661 Contribuyentes Sergio 3coma14 6242228xxx ArKaNgeL Aadrover Achata AdeVegaAdriglezmunera Aibdescalzo Airunp Alakasam AlbertoDV Albireo3000 Aleator Alexan Alexav8 Alfa989 Alfaprint AlfonsoERomero Alhen Alvaro qc Amadiacutes Angelsh Angus AnturAntoacuten Francho Aparejador Arcibel Ascaacutender AstroNomo AtilaElHuno Axxgreazz BL Baiji Balderai Barcex Beto29 Biasoli BlackBeast Bluenote Cest moi Caiser Camilo CarlosHumberto Carmin Carvas Ceixeoida Cespinoza Chewie Chico512 Chuyrocha Cinabrium Cjervis Cobalttempest ColdWind Comae Ctrl Z DMG Dagilpe Dangarcia Dani pt DarkproDavid0811 Denarius Dfcuellar Dferg Diegusjaimes Dodo Dogor Don Depresor Dorieo Drake 81 Dreitmen Drever Drini Drini2 Edmenb Edub Elabra sanchez Elproferoman EmijrpEnrique Suarez Infante S J Er Komandante Erfil Ezarate Fernando Estel Fernd Fillbit Fmariluis Fobenavi FrancoGG Frapen Futbolero German raul GermanX Gmagno Greek GuilleGurgut Gusgus Gustronico Goacutengora Goumltz HUB House Huberto252 Hugo-Luis Humbefa Humberto Icvav Inexinferis Interwiki Isha JEDIKNIGHT1970 JMPerez Jacina Jarfil JarkeJavierCantero Jesuja Jjvaca JoRgE-1987 Joanfusan Johns JorgeGG Jorgemty Jose figueredo Joseagrc Joseaperez Josemiguel93 Joserri JoulSauron Jperelli Jsanchezes Juank80Juanmundo Kanapejm Katy1234 Kordas Kved Larocka Lasai Libero LimboMX Lobo de Hokkaido Loco085 Lork Lucien leGrey Ludavim LuisArmandoRasteletti LujomebeLupoAlberto LyingB MARC912374 Mahadeva Maldoror Mamosi Manuel Gonzaacutelez Olaechea y Franco Manuel Trujillo Berges ManuelGR Manweuml Matdrodes Mauricio XavierMbarousse Miguel etsit Moriel Muro de Aguas Murphy era un optimista Netito777 Nicop Nikai Ninovolador Nirnaeth Nnss OMenda Opinador Oscar Oscar1922 PACO PacosteinPanchurret Patriciolorente Peppepep Phantom Stranger Piajeno Platonides PoLuX124 Poco a poco Pollo es pollo Ppfk Ppja Programador Puskas Queninosta RampPOLL RandycRenacimiento Retama Roberpl Rodolfoap RoyFocker Rsg RuLf Rumpelstiltskin Rαge Saloca Sam Hocevar Sanbec Santiperez Sauron Seanver Seldaiendil Sellkyrck Shooke SiabefSince Smensichowy Snakeyes Sonia Rod Soniautn Soporterct Spc Stifax Suisui Superzerocool Taichi Tano4595 The worst user Thorongil Thunderbird2 TiberioClaudio TigerfenixTirithel Tomatejc Tostadora Triku Tuks Ty25 Vanbasten 23 Vedranell Venturi Verbatim Vitamine Willtron Xavier Xexito Yakoo Yeza Yrithinnd Zufs Zurt conversion script 1337ediciones anoacutenimas

Aplicacioacuten informaacutetica Fuente httpeswikipediaorgwindexphpoldid=35924006 Contribuyentes Aikurn Alex mayorga Antipatico Biasoli Briancarloscondenanza Camilo CinabriumCronos x Diegusjaimes Dodo Edinjo Eduararley Elwikipedista Emijrp FedericoMP Hack-Master JorgeGG Jsanchezes Jugones55 Lampsako Loco085 MacLahan Makahaxi ManuelTrujillo Berges Matdrodes Moriel Mortadelo2005 Netito777 Qwertyytrewqqwerty Rosarino SF007 Sapientisimo Sauron Shooke Sms Soniautn Speedplus Superzerocool Thief12 UnMercenario Vubo Wewe WikiDeb Wikier Wikixav Wrcdriver XalD Zenapau 69 ediciones anoacutenimas

Lenguaje de programacioacuten Fuente httpeswikipediaorgwindexphpoldid=36250537 Contribuyentes Aadrover AalvaradoH Achury Airunp Akhran Alex15090 AlfonsoERomeroAlhen Almorca Alvaro qc Andreasmperu Angus Antur Arcibel Argentinoo Arrobando Ascaacutender AstroNomo Avm Baiji Balderai Balix Barteik Bedwyr BelegDraug Bob A BucephalaCam367 Camilo Cansado Carlita Carlos Zeas Carola-zzz Cesarintel CharlesKnight Chfiguer Cobalttempest Cookie Cratoacuten Danakil Danielba894 Dat Descansatore Dferg DiegosoutoDiegusjaimes Digigalos Diosa Dodo Dreitmen Drini Dusan Eamezaga Edgarchan Edmenb Edub Eduiba Elabra sanchez Eligna Elisardojm Elproferoman Elwikipedista EsterdelakpazExecoot Ezarate Ezequiel3E FCPB FrancoGG Fsd141 Gcsantiago Genba GermanX Gmarinp Greek HHM HUB Hompis Humberto Icvav Ignacio Icke Ilario Inakivk Indu Ingenierosinstructivos Isha JMPerez Jarfil Jarisleif Javier Carro Javierito92 Jefrcast Jesuja JoRgE-1987 JorgeGG Jose1100000 Joseaperez Joseromerogc Jsanchezes Juan Joseacute Moral Juanjo64Juank8041 Jugones55 Julie Julio Cardmat JyQ Kalcetin Komputisto Krli2s Kved LarA LeonardoRob0t LordT Lucien leGrey MADAFACK Mahadeva Majin boo MansonccManuelGR Manuelt15 Manweuml Martincarr Matdrodes Mel 23 Melocoton MiguelRdz Moriel Murphy era un optimista Mushii Netito777 Niqueco Nnss Nowadays Oscar OterminPabloBD Palita1880 Pan con queso Pejeyo Platonides PoLuX124 Poco a poco Porao Queninosta Qwertyytrewqqwerty Rata blanca Rbonvall Roberpl RoyFocker Rsg RumpelstiltskinRαge Sanbec Sappler Sauron Scott MacLean Sebado Sebasweee Snakeyes Spazer Spc Superzerocool Suruena Swatnio Taichi Thormaster Tigerfenix Tirithel TitoPeru TomatejcTostadora Triku Trylks Unf Vandal Crusher Vic Fede Vitamine Vubo Will vm Xavigivax Xemuj YSCO ZackBsAs Zeioth 647 ediciones anoacutenimas

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Fuentes de imagen Licencias y contribuyentes 19

Fuentes de imagen Licencias y contribuyentesArchivoDSCN0411JPG Fuente httpeswikipediaorgwindexphptitle=ArchivoDSCN0411JPG Licencia GNU Free Documentation License Contribuyentes UserNrbelexArchivoDg-nova3jpg Fuente httpeswikipediaorgwindexphptitle=ArchivoDg-nova3jpg Licencia desconocido Contribuyentes User Qu1j0t3 on enwikipediaArchivoOperating system placement-essvg Fuente httpeswikipediaorgwindexphptitle=ArchivoOperating_system_placement-essvg Licencia Creative CommonsAttribution-Sharealike 30 Contribuyentes UserGolftheman UserLyingBArchivoSOU2PNG Fuente httpeswikipediaorgwindexphptitle=ArchivoSOU2PNG Licencia Public Domain Contribuyentes UserFobenaviArchivoBatchjobb Norwegianpng Fuente httpeswikipediaorgwindexphptitle=ArchivoBatchjobb_Norwegianpng Licencia Public Domain Contribuyentes UserHarald HansenArchivoComponentes sistemas operativosgif Fuente httpeswikipediaorgwindexphptitle=ArchivoComponentes_sistemas_operativosgif Licencia Creative CommonsAttribution-Sharealike 25 Contribuyentes Angel ChataImagenCommons-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoCommons-logosvg Licencia logo Contribuyentes User3247 UserGruntImageWiktionary-logo-espng Fuente httpeswikipediaorgwindexphptitle=ArchivoWiktionary-logo-espng Licencia logo Contribuyentes esUsuarioPybaloImagenWikiversity-logo-Snorkysvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikiversity-logo-Snorkysvg Licencia logo Contribuyentes UserSnorkyArchivoOpenOfficeorg Writerpng Fuente httpeswikipediaorgwindexphptitle=ArchivoOpenOfficeorg_Writerpng Licencia GNU Lesser General Public License ContribuyenteshttphacktoliveorgArchivoPET-basicpng Fuente httpeswikipediaorgwindexphptitle=ArchivoPET-basicpng Licencia Public Domain Contribuyentes UserRafaxArchivoFortranCardPROJ039agrjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoFortranCardPROJ039agrjpg Licencia Creative Commons Attribution-Sharealike 25 Contribuyentes Arnold ReinholdArchivoCodeCmmt002svg Fuente httpeswikipediaorgwindexphptitle=ArchivoCodeCmmt002svg Licencia Creative Commons Attribution 25 Contribuyentes Original uploader wasDreftymac at enwikipediaArchivoProgramming language textbooksjpg Fuente httpeswikipediaorgwindexphptitle=ArchivoProgramming_language_textbooksjpg Licencia Public Domain ContribuyentesUserKleeImageWikibooks-logosvg Fuente httpeswikipediaorgwindexphptitle=ArchivoWikibooks-logosvg Licencia logo Contribuyentes UserBastique UserRamacArchivoSpanish WikiquoteSVG Fuente httpeswikipediaorgwindexphptitle=ArchivoSpanish_WikiquoteSVG Licencia desconocido Contribuyentes UserJamesmcdnz

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0

Licencia 20

LicenciaCreative Commons Attribution-Share Alike 30 Unportedhttp creativecommons org licenses by-sa 3 0