Sie sind auf Seite 1von 15

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

UNIDAD I INTRODUCCION A LA PROGRAMACIN

1.1. SISTEMAS OPERATIVOS


1.1.1. Definicin, caractersticas y funcin de un sistema operativo.
Sistema operativo, software bsico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y manipula el hardware del ordenador o computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magn ticas, y gestiona los errores de hardware y la p rdida de datos. !os sistemas operativos controlan diferentes procesos de la computadora. "n proceso importante es la interpretaci#n de los comandos que permiten al usuario comunicarse con el ordenador. $lgunos int rpretes de instrucciones estn basados en texto y exigen que las instrucciones sean tecleadas. %tros estn basados en grficos, y permiten al usuario comunicarse se&alando y haciendo clic en un icono. 'or lo general, los int rpretes basados en grficos son ms sencillos de utilizar. !os sistemas operativos pueden ser de tarea (nica o multitarea. !os sistemas operativos de tarea (nica, ms primitivos, s#lo pueden mane)ar un proceso en cada momento. 'or e)emplo, cuando la computadora est imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresi#n. *odos los sistemas operativos modernos son multitarea y pueden e)ecutar varios procesos simultneamente. En la mayor+a de los ordenadores s#lo hay una ",'; un sistema operativo multitarea crea la ilusi#n de que varios procesos se e)ecutan simultneamente en la ",'. El mecanismo que se emplea ms a menudo para lograr esta ilusi#n es la multitarea por segmentaci#n de tiempos, en la que cada proceso se e)ecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se e)ecuta otro proceso. Este intercambio de procesos se denomina conmutaci#n de contexto. El sistema operativo se encarga de controlar el estado de los procesos suspendidos. *ambi n cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe e)ecutarse. El planificador e)ecuta los procesos basndose en su prioridad para minimizar el retraso percibido por el usuario. !os procesos parecen efectuarse simultneamente por la alta velocidad del cambio de contexto.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

!os sistemas operativos pueden emplear memoria virtual para e)ecutar procesos que exigen ms memoria principal de la realmente disponible. ,on esta t cnica se emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere ms tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta ms lento. !os sistemas operativos empleados normalmente son "./0, !/."0 1ac %S, 1S23%S, %S45 y 6indo7s2.*. El !/."0 y sus clones permiten m(ltiples tareas y m(ltiples usuarios. Su sistema de archivos proporciona un m todo sencillo de organizar archivos y permite la protecci#n de archivos. Sin embargo, las instrucciones del "./0 no son intuitivas. %tros sistemas operativos multiusuario y multitarea son %S45, desarrollado inicialmente por 1icrosoft ,orporation e /nternational 8usiness 1achines ,orporation 9/81:, y 6indo7s2.*, desarrollado por 1icrosoft. El sistema operativo multitarea de las computadoras $pple se denomina 1ac %S. El 3%S y su sucesor, el 1S23%S, son sistemas operativos populares entre los usuarios de computadoras personales. S#lo permiten un usuario y una tarea. !os sistemas operativos siguen evolucionando. !os sistemas operativos distribuidos estn dise&ados para su uso en un grupo de ordenadores conectados pero independientes que comparten recursos. En un sistema operativo distribuido, un proceso puede e)ecutarse en cualquier ordenador de la red 9normalmente, un ordenador inactivo en ese momento: para aumentar el rendimiento de ese proceso. En los sistemas distribuidos, todas las funciones bsicas de un sistema operativo, como mantener los sistemas de archivos, garantizar un comportamiento razonable y recuperar datos en caso de fallos parciales, resultan ms comple)as.

1.1.2. Anlisis comparativo de Sistemas Operativos (MS DOS, !"#$%, &"#DO&S'


"n sistema %perativo 9S%: es en s+ mismo un programa de computadora. Sin embargo, es un programa muy especial, quiz el ms comple)o e importante en una computadora. El S% despierta a la computadora y hace que reconozca a la ,'", la memoria, el tecla do, el sistema de v+deo y las unidades de disco. $dems, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicaci#n. ,uando enciendes una computadora, lo primero que sta hace es llevar a cabo un autodiagn#stico llamado autoprueba de encendido 9'o7er %n Self *est, '%S*:. 3urante la '%S*, la computadora identifica su memoria, sus discos, su teclado, su sistema de v+deo y cualquier otro dispositivo conectado a ella. !o siguiente que la computadora hace es buscar un S% para arrancar 9boot:. "na vez que la computadora ha puesto en marcha su S%, mantiene al menos parte de ste en su memoria en todo momento. 1ientras la computadora est encendida, el S% tiene ; tareas principales:

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

-. 'roporcionar ya sea una interfaz de l+nea de comando o una interfaz grfica al usuario, para que este (ltimo se pueda comunicar con la computadora. /nterfaz de l+nea de comando: t( introduces palabras y s+mbolos desde el teclado de la computadora, e)emplo, el 1S23%S. /nterfaz grfica del "suario 9<"/:, seleccionas las acciones mediante el uso de un 1ouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los men(s. 5. $dministrar los dispositivos de hard7are en la computadora = ,uando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada4Salida 9impresoras, m#dems, etc:. El S% sirve de intermediario entre los programas y el hard7are. >. $dministrar y mantener los sistemas de archivo de disco = !os S% agrupan la informaci#n dentro de compartimientos l#gicos para almacenarlos en el disco. Estos grupos de informaci#n son llamados archivos. !os archivos pueden contener instrucciones de programas o informaci#n creada por el usuario. El S% mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos. ;. $poyar a otros programas. %tra de las funciones importantes del S% es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el S% proporciona directamente a los usuarios. 'or e)emplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. ,uando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del S%. Estas instrucciones son conocidas como ?llamadas del sistema?

El Kernel y el Shell. !as funciones centrales de un S% son controladas por el n(cleo 9@ernel: mientras que la interfaz del usuario es controlada por el entorno 9shell:. 'or e)emplo, la parte ms importante del 3%S es un programa con el nombre ?,%11$.3.,%1? Este programa ti ene dos partes. El @ernel, que se mantiene en memoria en todo momento, contiene el c#digo mquina de ba)o nivel para mane)ar la administraci#n de hard7are para otros programas que necesitan estos servicios, y para la segunda parte del ,%11$.3.,%1 el shell, el cual es el interprete de comandos. !as funciones de ba)o nivel del S% y las funciones de interpretaci#n de comandos estn separadas, de tal forma que puedes mantener el @ernel 3%S corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga s 1icrosoft 6indo7s, el cual toma el lugar del shell, reemplazando la interfaz de l+nea de comandos con una interfaz grfica del usuario. Existen muchos shells diferentes en el mercado, e)emplo: .3%S 9.orton 3%S:, 0*<, ',*%%!S, o inclusive el mismo S% 1S2 3%S a partir de la versi#n A.B incluy# un Shell llamado 3%S SCE!!.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

>

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

A.' (ate)oras de Sistemas Operativos


El t rmino multitarea se refiere a la capacidad del S% para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar S% multitarea, el primero requiere de la cooperaci#n entre el S% y los programas de aplicaci#n. !os programas son escritos de tal manera que peri#dicamente inspeccionan con el S% para ver si cualquier otro programa necesita a la ,'", si este es el caso, entonces de)an el control del ,'" al siguiente programa, a este m todo se le llama multitarea cooperativa y es el m todo utilizado por el S% de las computadoras de 1achintosh y 3%S corriendo 6indo7s de 1icrosoft. El segundo m todo es el llamada multitarea con asignaci#n de prioridades. ,on este esquema el S% mantiene una lista de procesos 9programas: que estn corriendo. ,uando se inicia cada proceso en la lista el S% le asigna una prioridad. En cualquier momento el S% puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el S% tambi n mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente. ,on multitarea de asignaci#n de prioridades el S% puede sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una tarea de mas prioridad. "nix %S25 y 6indo7s .* emplean este tipo de multitarea. A.2) MULTIUSUARIO: "n S% multiusuario permite a mas de un solo usuario accesar una computadora. ,laro que, para llevarse esto a cabo, el S% tambi n debe ser capaz de efectuar multitareas. "nix es el Sistema %perativo 1ultiusuario ms utilizado. 3ebido a que "nix fue originalmente dise&ado para correr en una minicomputadora, era multiusuario y multitarea desde su concepci#n. $ctualmente se producen versiones de "nix para ', tales como *he Santa ,ruz ,orporation 1icroport, Esix, /81,y Sunsoft. $pple tambi n produce una versi#n de "nix para la 1achintosh llamada: $4"0."nix "nix proporciona tres maneras de permitir a m(ltiples personas utilizar la misma ', al mismo tiempo. -.: 1ediante 1#dems. 5.: 1ediante conexi#n de terminales a trav s de puertos seriales >.: 1ediante Dedes. A.3) MULTIPROCESO: !as computadoras que tienen mas de un ,'" son llamadas multiproceso. "n sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ea que cada ,'" en una computadora de multiproceso puede estar e)ecutando una instrucci#n, el otro procesador queda liberado para procesar otras instrucciones simultneamente. $l usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. ,asi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran venta)a.

A.1' M$!*"*A+,A-

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:


____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

1ultiproceso asim trico: "na ,'" principal retiene el control global de la computadora, as+ como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la direcci#n ideal a seguir ya que la ,'" principal pod+a convertirse en un cuello de botella. 1ultiproceso sim trico: En un sistema multiproceso sim trico, no existe una ,'" controladora (nica. !a barrera a vencer al implementar el multiproceso sim trico es que los S% tienen que ser redise&ados o dise&ados desde el principio para traba)ar en u n ambiente multiproceso. !as extensiones de "nix, que soportan multiproceso asim trico ya estn disponibles y las extensiones sim tricas se estn haciendo disponibles. 6indo7s .* de 1icrosoft soporta multiproceso sim trico.

..' !ista de los Sistemas Operativos ms comunes.


B.1) MS-DOS: Es el ms com(n y popular de todos los Sistemas %perativos para ',. !a raz#n de su continua popularidad se debe al aplastante volumen de soft7are disponible y a la base instalada de computadoras con procesador /ntel. ,uando /ntel liber# el FB5FG, 3 %S se hizo tan popular y firme en el mercado que 3%S y las aplicaciones 3%S representaron la mayor+a del mercado de soft7are para ',. En aquel tiempo, la compatibilidad /81, fue una necesidad para que los productos tuvieran xito, y la ?compatibilidad /81? significaba computadoras que corrieran 3%S tan bien como las computadoras /81 lo hac+an. B.2) OS/2: 3espu s de la introducci#n del procesador /ntel FB5FG, /81 y 1icrosoft reconocieron la necesidad de tomar venta)a de las capacidades multitarea de esta ,'". Se unieron para desarrollar el %S45, un moderno S% multitarea para los microprocesadores /ntel. H 8DISin embargo, la sociedad no dur# mucho. !as diferencias en opiniones t cnicas y la percepci#n de /81 al ver a 6indo7s como una amenaza para el %S45 caus# una desavenencia entre las ,ompa&+as que al final las llev# a la disoluci#n de la sociedad. !M continu" el desarrollo y promoci"n del OS#$. Es un sistema operativo de multitarea para un solo usuario que requiere un microprocesador /ntel 5FG o me)or. $dems de la multitarea, la gran venta)a de la plataforma %S45 es que permite mane)ar directamente hasta -G 18 de la D$1 9 en comparaci#n con - 18 en el caso del 1S23%S :. 'or otra parte, el %S45 es un entorno muy comple)o que requiere hasta ; 18 de la D$1. !os usuarios del %S45 interactuan con el sistema mediante una interfaz grfica para usuario llamada $dministrador de presentaciones. $ pesar de que el %S45 rompe la barrera de - 18 del 1S23%S, le llevo tiempo volverse popular. !os vendedores de soft7are se muestran renuentes a destinar recursos a la creaci#n de un soft7are con base en el %S45 para un mercado dominado por el 1S23%S. !os usuarios se rehusan a cambiar al %S45 debido a la falta de soft7are que funcione en la plata forma del %S45 y a que muchos tendr+an que me)orar la configuraci#n de su ', para que opere con el %S45.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

B.3) UNIX: "nix es un S% multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, 1ainframes, 1inicomputadoras, computadoras personales y estaciones de traba)o. Es un sistema operativo que fue creado a principios de los setentas por los cient+ficos en los laboratorios 8ell. Jue espec+ficamente dise&ado para proveer una manera de mane)ar cient+fica y especializadamente las aplicaciones computacionales. Este S% se adapto a los sistemas de computo personales as+ que esta aceptaci#n reciente lo convierte en un sistema popular. . "nix es ms antiguo que todos los dems S% de ', y de muchas maneras sirvi# como modelo para stos. $un cuando es un S% extremadamente s#lido y capaz, la l+nea de comandos "nix, no es apta para cardiacos, debido a que ofrece demasiados comandos. B.4) SISTEMA OPERATIVO DE MACINTOSH : !a 1acintosh es una mquina netamente grfica. 3e hecho, no existe una interfaz de l+nea de comando equivalente para sta. Su estrecha integraci#n de S%, <"/ y rea de traba)o la hacen la favorita de la gente que no quiere saber nada de interfaces de l+nea de comando. !as capacidades grficas de la 1acintosh hicieron de esa mquina la primera precursora en los campos grficos computarizados como la autoedici#n por computadora. !a familia de microcomputadoras de $pple 1acintosh y su sistema operativo define otra plataforma importante. !as ', de 1acintosh, que se basan en la familia de microprocesadores de 1otorola, usan la arquitectura de 8us de >5 bits. !a plataforma para 1acintosh incluye muchas capacidades sofisticadas que comprende la multitarea, una <"/, la memoria virtual y la capacidad para emular la plataforma 1S23%S. !as ', de 1acintosh tambi n tiene la capacidad integrada de compartir archivos y comunicarse con o tras ', de 1acintosh en una red.

B.5) WINDOWS NT DE MICROSOFT: ,on 6indo7s .*, 1icrosoft ha expresado su dedicaci#n a escribir soft7are no s#lo para ', de escritorio sino tambi n para poderosas estaciones de traba)o y servidores de red y bases de datos. 1icrosoft 6indo7s .* no es necesariamente un sustituto de 3%S ni una nueva versi#n de ste; es, en con)unto, un nuevo S% dise&ado desde sus bases para las mquinas ms modernas y capaces disponibles. 6indo7s .* de 1icrosoft ofrece caracter+sticas interconstruidas que ning(n otro S% para ', ofrece, con excepci#n de "nix. $dems de las caracter+sticas tradicionales de estricta seguridad de sistema, red interconstruida, servicios de comunicaci#n y correo electr#nico interconstruidos, herramientas de administraci#n y desarrollo de sistema y una <"/, 6indo7s .* puede correr directamente aplicaciones de 6indo7s de 1icrosoft y de "nix.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

6indo7s .*, al igual que el %S45 ver 5.B y algunas versiones de "nix, es un S% de >5 bits, que puede hacer completo uso de los procesadores de estas caracter+sticas. $dems de ser multitarea, est dise&ado para tomar venta)a del multiproceso sim trico.

1.2. Evolucin de lo len!u"#e de $%o!%"&"cin.


1.2.1. Definicin, caractersticas y funciones de los len)ua/es de pro)ramacin.
Pag 25 y 2 !"#$%#$

Len!u"#e ' L!ic"


Existen dos tipos bsicos y reconocidos de lengua)es: los lengua)es naturales y los lengua)es formales. !os primeros como puede ser: el Jranc s, el /ngl s o el ,astellano; tienen su origen y desarrollo natural, es decir, sin el control de ninguna teor+a. !as teor+as de lengua)es naturales y las gramticas, fueron establecidas a priori, esto es, despu s de que el lengua)e habia ya madurado. 'or otro lado, los lengua)es formales como las matemticas y la l#gica, fueron desarrollados generalmente a trav s del establecimiento de una teor+a, la cual le d las bases para dichos lengua)es. El ob)etivo de este cap+tulo es definir las caracter+sticas distinguibles mas importantes entre estas dos clases de lengua)es y presentar las razones que predisponen a los investigadores a la consideraci#n de la posibilidad de la existencia de principios comunes a ambos. Esto nos har establecer los fundamentos de una teor+a cuya meta es permitir la traducci#n 9o la expresi#n: de un lengua)e natural o formal a un lengua)e formal particular llamado el lengua)e de la l#gica. !a (ltima meta de este proceso es el poder mane)ar y procesar los lengua)es naturales y formales usando t cnicas de computaci#n como por e)emplo el lengua)e 'rolog.

Len!u"#e n"(u%"le ' len!u"#e )o%&"le


En un lengua)e se tiene que los elementos mas ms simples son los s+mbolos llamados letras que constituyen un alfabeto , que es un con)unto finito de s+mbolos . ,on la concatenaci#n de las letras formaremos palabras que determinan un con)unto . El con)unto de palabras que tengan un significado constituirn el diccionario del lengua)e 9por e)emplo el 6ebster, diccionario del /ngl s:. $ partir de lo anterior, tendremos que un lengua)e se considera como un con)unto de oraciones, que usualmente es infinito y, se forma con palabras del diccionario. En este punto, podemos distinguir entre dos clases de lengua)es; los lengua)es naturales como el Jranc s, /ngl s, y ,astellano y, lengua)es formales como las 1atemticas y la !#gica. El lengua)e ,astellano puede ser definido como el con)unto 9te#ricamente infinito: de todas las oraciones en ,astellano. Esas oraciones son consistentes en forma natural con la experiencia prctica humana que se organiza automticamente al tiempo que organiza el lengua)e en si mismo.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

"na oraci#n en ,astellano es una secuencia finita de palabras del ,astellano, donde sabemos que el con)unto de esas palabras es finito. "na oraci#n en ,astellano puede ser considerada como una secuencia finita de elementos tomados de un con)unto finito dado, sin embargo, no todas las combinaciones de palabras son permitidas, es necesario que esas combinaciones sean correctas 9con respecto a una sintxis: y tengan sentido 9con respecto a la semntica:, estas sern las que se encontrarn dentro de un diccionario. Esa sintxis y esa semantica constituyen un orden en la teor+a del lengua)e ,astellano: $quel que permite la definici#n de todas las oraciones en ,astellano y as+, del lengua)e ,astellano. 3e la particularizaci#n anterior se desprende que en un lengua)e natural, como el ,astellano, la formaci#n de las oraciones del lengua)e procedi# la formalizaci#n de el lengua)e por medio de una teor+a o una gramtica. 'or esta raz#n, un lengua)e es llamado natural lo que es decir, es no2artificial o no construido. El calificativo %%natural&, se opone al de %%formal&, el cual determina un lengua)e que es construido estableciendo una teor+a y, por ende, se le llamar artificial. "n lengua)e formal como la !#gica consiste de un con)unto de oraciones generalmente llamadas f#rmulas u expresiones bien formadas, las cuales podemos obtener de la aplicaci#n de las leyes de la !#gica. !a calificaci#n de %%Len'ua(e )rtificial&, se refiere al hecho de que el lengua)e se forma por medio de reglas y axiomas de formaci#n. El calificativo %%formal& se refiere espec+ficamente al hecho de que las oraciones de estos !engua)es consisten de una lista de s+mbolos 9l#gicos o matemticos: su)etos a diversas interpretaciones. 'or otro lado, en los lengua)es naturales las palabras en una oraci#n posee un significado y tienen su significante. Esto quiere decir que independientemente del significado de cada palabra, debemos tomar en cuenta el sentido correcto que stas adquieren, seg(n el contexto en las que se expresen en un momento dado. "na de las metas en computaci#n es poder especificar rigurosamente estos significados por los m todos de interpretaci#n de los sistemas formales, estos m todos en cuesti#n, constituyen las semnticas de el lengua)e formal. En un primer resumen tenemos que los lengua)es naturales y formales, difieren significativamente uno de otro por su origen y por su rea de aplicaci#n. 'rimeramente vamos a intentar identificar las propiedades mas importantes de estos dos tipos de lengua)es, con el fin de examinar una de las preguntas fundamento de la /nteligencia $rtificial 9/$:: LM Casta que punto pueden los lengua)es naturales ser representados 9traducidos: por medio de lengua)es formalesM; mas espec+ficamente, estaremos interesados en la utilizaci#n de lengua)es computacionales intentando representar y manipular lengua)es naturales. P"#&'()a)(% )( *#% *($g+a,(% $a-+"a*(% El lengua)e es la funci#n que expresa pensamientos y comunicaciones entre la gente. Esta funci#n es llevada a cabo por medio de se&ales y vocales 9voz: y posiblemente por signos escritos 9escritura: que conforman el lengua)e natural. ,on respecto a nuestro mundo, el lengua)e nos permite designar las cosas actuales 9y razonar acerca de ellas: y crear significados. ,ontrariamente a lo que ciertas teor+as lingu+sticas formales har+an a uno creer, el lengua)e natural no fu fundamentado sobre una verdad racional a priori, pero fu desarrollado y organizado a partir de la experiencia humana, en el mismo proceso en que la experiencia humana fue organizada. En su forma actual, los lengua)es naturales tienen un gran poder expresivo y pueden ser utilizados para analizar situaciones altamente comple)as y razonar muy sutilmente.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

!a riqueza de su componente semntico y su cerrada relaci#n con los aspectos prcticos de los contextos en los cuales son usados da a los lengua)es naturales su gran poder expresivo y su valor como una herramienta para razonamiento sut+l. En lo siguiente veremos cuan dif+cil es formalizar el componente semntico de un lengua)e natural, es decir el constituyente del lengua)e por el cual las oraciones tienen o adquieren su significado. 'or otro lado, la sintxis de un lengua)e natural puede ser modelada facilmente por un lengua)e formal similar a los utilizados en las matemticas y la l#gica. %tra propiedad (nica de los lengua)es naturales es la NpolisemnticaN, es decir, la posibilidad de 9que una palabra en una oraci#n tenga diversos significados, diversos valores, por e)emplo la palabra NpairN en el /ngl s puede ser considerada primero como un sustantivo, y es usada entonces en estructuras de frases como Narrange in pairsN, Nthe happy pairN, sin embargo, puede tambi n ser interpretada como un verbo transitivo en frases como Nt7o vases that pairN, Nto pair off 7ith someoneN.

El carcter polisemntico de un lengua)e tiende a incrementar la riqueza de su componente semntico, ms a(n esto hace la formalizaci#n dificil, sino imposible la polisemntica de los lengua)es naturales es considerada una propiedad adquirida recientemente O$tlan FGP, las formas primarias de los lengua)es naturales habr+an sido similares a los lengua)es formales y la polisemntica ser+a el resultado de un enriquecimiento progresivo. En suma los lengua)es naturales se distinguen por las siguientes propiedades: i: 3esarrollados por enriquecimiento progresivo antes de cualquier intento de formaci#n de una teor+a. ii: !a importancia de su carcter expresivo debido grandemente a la riqueza de el componente semntico 9polisemntica:. iii: 3ificultad o imposibilidad de una formalizaci#n completa. P"#&'()a)(% )( *#% *($g+a,(% .#"/a*(% !a definici#n 9es decir, axiomtica: de una teor+a de un lengua)e formal dado, procedi# la formaci#n dc oraciones 9o f#rmulas: de este lengua)e. El proceso de generaci#n y desarrollo de un lengua)e formal es inverso con respecto al de los lengua)es naturales, consecuentemente, las palabras y las oraciones de un lengua)e formal son perfectanente definidas 9una palabra mantiene el mismo significado prescindiendo de contexto o uso:. En adici#n, el significado de simbolos es determinado exclusivamente por la sintxis, sin referencia a ning(n contenido semntico, una funci#n y una f#rmula puede designar cualquier cosa, solamente los operadores y relaciones que nos permiten escribir una f#rmula como la igualdad, desigualdad, pertenencia, no pertenencia, conectivos l#gicos, , , etc., y operadores algebricos Q, 0, , etc., tienen significados especiales. !os lengua)es formales son, por esto, necesariameme exentos de cualquier componente semntico fuera de sus operadores y relaciones, y es gracias a esta ausencia de significado especial que los lengua)es formales pueden ser usados pare modelar una teor+a de la mecnica, de la ingenier+a el ctrica, en la lingu+stica u otra naturaleza, la cual asume el estatus del componente semntico de tal lengua)e. Esto equivale a decir que durante la concepci#n de lengua)es formales toda la ambiguedad es eliminada, es como si esta reducci#n al significado (nico debe manifestarse por si mismo como la eliminaci#n del Nmundo de significadosN en el proceso de construir las f#rmulas, al tiempo que se toca el nivel abstracto de estas construcciones. Es solamente por medio de un paso adicional que el significado es
____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

asignado a las f#rmulas, este paso nos permite la posibilidad de asignar un criterio falso4cierto a cada f#rmula. El mundo de significados, que es el componente semntico, solamente existe en la teor+a que uno intenta expresar a trav s del lengua)e formal. 'or e)emplo, un componente semntico normalmente asociado con el lengua)e formal de una teor+a c#nica es el movimiento de los cuerpos celestes, sistemas lineales de todos las #rdenes son posibles componentes semnticos de teor+a de matrices. "na de las principales metas en /$ es la manipulaci#n de lengua)es con metodos de las ciencias de la computaci#n, manipulaci#n basada en la asignaci#n del componente semntico de los lengua)es naturales a ciertos lengua)es l#gicos como los lengua)es de primer orden o loslengua)es modales. .o podemos evitar mencionar la importancia de los n(meros en lengua)es formales. En un sistema num rico, asi como en un sistema de clculo, los n(meros siempre tienen el potencial de referir un cierto NcontenidoN el cual pertenecer entonces al componente semntico del lengua)e: los ob)etos posibles cuando son contables o medibles. !a asociaci#n de un significado con un n(mero o clculo no es siempre obvio, sin embargo, es util recordar que en f+sica cuando se completa un clculo y se busca entonces interpretarlo, solamente se mantienen los n(meros positivos de los resultados, ya que las soluciones negativas o imaginarias a las ecuaciones que se supone describen la realidad son la mayor+a de las veces rechazadas porque no corresponden con la Nrealidad fisicaN. En suma, los lengua)es formales son caracterizados por las siguientes propiedades: i: Se desarrollan de una teor+a preestablecida, ii: ,omponente semntico m+nimo. iii: 'osibilidad de incrementar el componente semntico de acuerdo con la teor+a a formalizar. iv: !a sintxis produce oraciones no ambiguas. v: !a importancia del rol de los n(meros. vi: ,ompleta formalizaci#n y por sto, el potencial de la construcci#n computacional.

M"ni$ul"cin co&$u("cion"l de len!u"#e n"(u%"le


"na meta fundamental en /$ es la manipulaci#n de lengua)es naturales usando herramientas de computaci#n, en esta perspectiva, los lengua)es de programaci#n )uegan un importante rol: forman el enlace necesario entre los lengua)es naturales y su manipulaci#n por una mquina. 3ebemos recordar primero antes que todo que un lengua)e de programaci#n, como 'rolog es una herramienta pare escribir programas para una computadora. !a definici#n de 'rolog se origina en la l#gica formal: 'rolog e)ecuta estatutos que no son otra cosa que oraciones de un lengua)e l#gico elemental particular, llamado, clusulas de Corn. "na diferencia fundamental entre lengua)e natural y un lengua)e l#gico que debe ser tomada en cuenta en la representaci#n del primero, es aquella que resulta de el lugar central ocupado por el concepto de verdad en la l#gica. El rol del anlisis l#gico es sobre todo determinar si una oraci#n 9f#rmula: de un lengua)e es vlida 9verdadera en todas sus interpretaciones:, absurda 9falsa en todas sus interpretaciones: o simplemente consistente 9verdadera en al menos una de sus interpretaciones:.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO -B

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

"n buen n(mero de oraciones en un lengua)e natural son estatutos no declarativos, vagos o indeterminados como Entendi# 'abloM, Suan es )ovenN, Npuedo venirN a las cuales parece en principio, dif+cil asignar valores de verdad 9verdadero # falso:. "na forma de desviar la dificultad resultante de la importancia dada o no a el concepto de la verdad de una oraci#n es introducir las nociones de proposici#n y proporsici#n expresada. "na proposici#n es el contenido de una oraci#n, es decir, el con)unto de situaciones 9mundos posibles: en las cuales la oraci#n es verdadera. El concepto de proposici#n toma en cuenta el hecho de que una importante funci#n del lengua)e natural es referir ob)etos y situaciones, esto es interpreter cada oraci#n del lengua)e como un fragmento de la realidad. El valor de verdad de una proposici#n depende, por lo anterior, no solamente de las relaciones entre las palabras del lengua)e los ob)etos en el mundo sino tambi n de el estado del mundo y del conocimiento acerca de ese estado. El valor de verdad de la oraci#n N'ablo correN depende no solamente de la persona denotada en N'abloN y el significado del verbo NcorrerN, sino tambi n del momento cuando esta oraci#n es expresada. 'ablo probablemente corre ahora, pero ciertamente que no siempre corre. El valor de verdad de la oraci#n N'edro piensa que 'ablo correN depende del conocimiento de 'edro. Si trasladamos el lengua)e natural, interpretado necesariamente como realidad, a un lengua)e l#gico, este (ltimo toma automticamente esta interpretaci#n. 3ebemos todavia garantizar la completa formalizaci#n de esta intepretaci#n con una semntica formal como podria ser Nmundos posiblesN OTrip@e G>P. Jinalmenlte el anlisis de verdad de las oraciones de este lengua)e l#gico nos permite razonar acerca de la realidad que representa.

.o es siempre necesario que un agente sea capz de decir si una oraci#n que l expresa es verdadera o falsa con respecto a cierto estado de la realidad, un lengua)e no debe ser reducido a la sola funci#n de referirse a un mundo real o posible .!a formalizaci#n de un lengua)e natural por medio de un lengua)e l#gico exige que este (ltimo sea suficientemente expresivo para refle)ar todas las sutilezas del primero, en otras palabras, estos lengua)es l#gicos deben ser capces de refle)ar, en la formalizaci#n, todas las funciones extra2referencia de el lengua)e, las cuales son por lo regular, mucho mas comple)as que las funciones referencia.'or proposici#n expresada entendemos el sentido espec+fico de la proposici#n, independientemente de cualquier anlisis de verdad.

M"ni$ul"cin co&$u("cion"l de len!u"#e )o%&"le


!as dificultades inherentes en la representaci#n de lengua)es naturales por medio de un lengua)e l#gico no ocurren en el proceso de traducci#n de un lengua)e formal dentro de uno l#gico. ,omo las oraciones de la l#gica, los estatutos matemticos no dependen del contexto en el cual son establecidos. "no de los problemas cruciales en la representaci#n de un lengua)e natural por la l#gica llamado el problema de la referenciaci#n, desaparece en este caso. "na de las metas historicas de la representacion del discurso
____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO --

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

matemtico en forma l#gica fue ciertamente tracer posible beneficiarse de el rigor y precisi#n de el lengua)e l#gico en la fundamentaci#n y desarrollo de ciertas partes de las matemticas, por e)emplo, <odel tenia esta perspectiva cuando formaliz# la teor+a de con)untos por medio de un n(mero finito de f#rmulas l#gicas de primer orden O<odel;BP. !as actuales motivaciones para la representaci#n l#gica resultan principalmente de la conecci#n de tal representaci#n con la teor+a de demostraci#n automtica, en O8oyerFGP se propone la reformulaci#n de los axiomas l#gicos de la teor+a de con)untos en el lengua)e de clausulas, ests pueden ser usadas directamente en metodos de demostraci#n de teoremas basados en la regla de resoluci#n.

0.2. CLASIFICACI1N DE LOS LEN2UA3ES DE PRO2RAMACI1N POR SU AREA DE APLICACI1N 4 ORI2EN "n lengua)e de programaci#n es un con)unto de s+mbolos, )unto con un con)unto de reglas para combinar dichos s+mbolos que se usan para expresar programas. !os lengua)es de programaci#n, como cualquier lengua)e, se componen de un l xico 9con)unto de s+mbolos permitidos o vocabulario:, una sintaxis 9reglas que indican c#mo realizar las construcciones del lengua)e:, y una semntica 9reglas que permiten determinar el significado de cualquier construcci#n del lengua)e:. Ea hemos dicho que para que una computadora pueda e)ecutar un programa escrito en un determinado lengua)e de programaci#n, es necesario que dicho programa sea traducido a un lengua)e que la computadora entienda, el LEN2UA3E DE MA5UINA, el cual est totalmente apegado a los circuitos de la mquina y muy ale)ado del lengua)e que los seres humanos utilizan. $unque dicho lengua)e hace posible hacer programas que utilicen la totalidad de los recursos de la mquina y as+ obtener programas muy eficientes en cuanto a tiempo de e)ecuci#n y uso de memoria, resulta muy dif+cil programar en l. 'or eso se desarrollaron otros tipos de lengua)es como lo vamos a discutir a continuaci#n. !os lengua)es de programaci#n se pueden clasificar de la siguiente manera, utilizando el criterio de proximidad del lengua)e con la mquina o con el lengua)e natural: -. L($g+a,(% )( !a,# $'6(*: !engua)es de mquina. 5. L($g+a,(% )( $'6(* /()'#: Ensambladores y 1acroensambladores. >. L($g+a,(% )( a*-# $'6(*, como 'ascal, Jortran,,, ,QQ, !isp, 8asic, 'rolog, etc. $ estos (ltimos se les puede tambi n clasificar por el tipo de problemas que nos permiten resolver con ms facilidad. -. A&*'7a7'#$(% 7'($-8.'7a%, en donde predominan operaciones num ricas propias de algoritmos num ricos. $qu+ tenemos a Jortran y 'ascal, pero particularmente Jortran. 5. P"#7(%a/'($-# )( )a-#%, como ,%8%! y SU!. >. T"a-a/'($-# )( -(9-#% como ,.
____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO -5

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

;. I$-(*'g($7'a a"-'.'7'a*, como aplicaciones en sistemas expertos, )uegos y visi#n artificial. $qu+ tenemos a !/S' y 'D%!%<. A. P"#g"a/a7':$ )( S'%-(/a%: Soft7are que permite la interfaz entre el hard7are y el usuario. *enemos a $3$, 1%3"!$25 y , %tra clasificaci#n ser+a por el estilo de programaci#n que fomentan. -. L($g+a,(% '/&("a-'6#% # &"#7()+"a*(%. Estos establecen c#mo debe e)ecutarse una tarea, dividi ndola en partes y especificando las subtareas asociadas. Se fundamentan en el uso de variables para almacenar valores y el uso de instrucciones para indicar operaciones a realizar con los datos. !a mayor+a de los lengua)es de alto nivel son de este tipo: Jortran, 'ascal, 8asic, etc. 5. D(7*a"a-'6#%. !os programas se construyen mediante descripciones de funciones o expresiones l#gicas que indican las relaciones entre determinadas estructuras de datos 9'D%!%<:. >. L($g+a,(% #"'($-a)#% a O!,(-#%. Se centran ms en los datos y su estructura. "n programa consiste de descripciones de unidades denominadas ob)etos que encapsulan a los datos y las operaciones que act(an sobre ellos 9,QQ:. ;. L($g+a,(% #"'($-a)#% a* &"#!*(/a. 3ise&ados para problemas espec+ficos. Son generadores de aplicaciones que permitan automatizar la tarea de desarrollo de soft7are de aplicaciones. Se hablar entonces ahora de los traductores para los diferentes tipos de lengua)es de programaci#n, de acuerdo con su proximidad al lengua)e de mquina o al lengua)e natural.

1.*. In(e%$%e(e + Co&$il"do%e .


1.0.1. Definicin de "nt1rpretes y (ompiladores, Am2iente inte)ral del !en)ua/e (
Len!u"#e de nivel ,"#o ' "l(o !os lengua)es de nivel de mquina y los de ensamblador se clasifican como *($g+a,(% )( $'6(* !a,#. Esto se debe a que ambos utilizan instrucciones que estn vinculadas directamente a un tipo de computadora. 3e tal manera, un programa en lengua)e ensamblador s#lo se puede utilizar con el tipo espec+fico de computadora para la cual fue escrito. *ales programas, sin embargo, permiten utilizar las caracter+sticas espec+ficas de una computadora en particular y generalmente se e)ecutan en el nivel ms rpido posible. En contraste con los lengua)es de nivel ba)o estn los de nivel alto. "n lengua)e de nivel alto utiliza instrucciones similares a las de los lengua)es escritos, como el ingl s, y se pueden e)ecutar en diversos tipos de computadoras. J%D*D$., 8$S/,, 'ascal y ,QQ son e)emplos de lengua)es de nivel alto.; "tilizando ,QQ, una instrucci#n para sumar dos n(meros y multiplicarlos por un tercer n(mero se puede escribir como: resultado V 9primero Q segundo: W tercero;

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO ->

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

$ los programas escritos en un lengua)e de computadora de nivel alto o ba)o se les conoce de manera indistinta como &"#g"a/a% .+($-( # 7:)'g# .+($-(. "na vez que un programa se escribe en un lengua)e de nivel alto, tambi n se debe traducir, al igual que un programa ensamblador de nivel ba)o, al lengua)e de mquina de la computadora en la cual se e)ecutar. Esta traducci#n se puede realizar de dos maneras. ,uando cada instrucci#n en un programa fuente de nivel alto se traduce de manera individual y se e)ecuta inmediatamente al momento de la traducci#n, el lengua)e de programaci#n utilizado se llama *($g+a,( '$-("&"(-a)#; y el programa que efect(a la traducci#n se llama '$-<"&"(-(. ,uando todas las instrucciones en un programa fuente de nivel alto se traducen como una unidad completa antes de que cualquier instrucci#n sea e)ecutada, al lengua)e de programaci#n utilizado se le llama *($g+a,( 7#/&'*a)#. En este caso, al programa que efect(a la traducci#n se le llama 7#/&'*a)#". 'uede haber versiones tanto compiladas como interpretadas de un lengua)e, aunque generalmente una predomina. 'or e)emplo, aunque existen versiones compiladas de 8$S/,, ste es predominantemente un lengua)e interpretado. 3e la misma forma, aunque existen versiones interpretadas de ,QQ, ste es bsicamente un lengua)e compilado. REALIZACIN DE UN PROGRAMA EN C. En este apartado se van a exponer los pasos a seguir en la realizaci#n de un programa, por medio de un e)emplo. !a siguiente figura, representa estos pasos en el orden en el que hay que e)ecutarlos.
, % 1 ' / ! $ 3 % D

E 3 / * % D

$. ,.

$. %8S

8. ,.

8. %8S

,. %8S

E . ! $ X $ 3 % D

$. E0E

3. !/8 .!/8

Este e)emplo que una vez editados los ficheros fuente $. , y 8. ,, son compilados obteni ndose los ficheros ob)eto $. %8S y 8. %8S los cuales son enlazados con el fichero ,. %8S, con la librer+a 3. !/8 y con las librer+as del sistema .!/8 dando lugar a un (nico fichero e)ecutable $. E0E. !a orden correspondiente para compilar y enlazar los ficheros expuestos en este e)emplo, es la siguiente: ,! $., 8., ,.%8S 4lin@ 3.!/8

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO -;

INTRODUCCION A LA PROGRAMACIN UNIDAD I ____________________________________________________________________________________________________

'ara e)ecutarse el fichero $.E0E resultante, escribir el nombre de dicho fichero 9$:, y pulsar Enter.

____________________________________________________________________________________________________ FUNDAMENTOS DE PROGRAMACN ING. OSORNIO -A

Das könnte Ihnen auch gefallen