Está en la página 1de 38
_-- = Enciclopedia de la —____. ~ ELECTRONICA INGENIERIA Y TECNICA Charles Belove Departamento de Ingenieria Fléctriea y Computacién Florida Atlantic University Boca Raton, Florida Director de Ia versiGu en espaftol Francisco Paniagua B., ILM.E. Universidad Nacional Auténoma de México Consultor Editorial de Ingenieria Eléctrica Miembro de la U.S. Metric Association Es una obra del GRUPO EDITORIAL OCEANO Presidente José Lhis Monreal Director General José M? Mart Director General de Publicaciones Carlos Gispent ‘Version espaiola de Ia edicién original de Charles Belove “Handbook of Modern Electronics and Electrical Engineering” publicada por John Wiley & Sons, Nueva York, EE UU. ‘Version oniornat Consejo Editorial: Philip Hopkins Milton Rosenstein Lockteed Engineering and [New York Insitute of Technology Management Services. Co. Ine (Old Westbury. Nueva York Houston, Texas Stantey shinners award Nelson Tericho. Nueva York New York Institute of Technology (la westoury, Nueva York VERSION ESPASOLA ‘Supervision Eaitorial: Pedro Basurto Samperio Biiclon: Begoiia Robles Dineccién Editorial: Marta Bueno Traduccién: Roberto Palacios Martner Juan Carlos Vega Fagonga Liveaciada en Ciencias Ingenieria en Sistemas Universidad Auténoma de Baja California José Rafael Blengio Pinto Medico Cirujano Hugo Vilagémer Velézquer Unwversidad Nacional Autonoma Licenciado en Fisica y Materéticas de México Instituto Poliscnice Nacional, Mexico Doctor en Ciencias M* Dolores Garcia Diaz Universidad de Paris, Francia ‘Traductora Especializada en Ciencias @MCMLXXXVI Eeicion Original John Wiley & Sons, Inc. (© MCMXC Edicién Espafola Ediciones Centrum Técnicas y Cientiicas Paseo de Gravis, 26 — 08007 Buseclone — Espula Tel. (93) 301 01 82 — Télex 51 735 exit e — Fax (92) 31797 01 Reservados todos los derechos. Ouedan rigurosamenté prohibidas. sin la autorizacion esrita de tos titlares del copyright, bajo las sancionesestablecidas en las leyes, la reproduecign total o parcial de festa obfa por cualquier medio o procedimiento, comprendidos ls eprografis y el iatanienty infor smition,y la dseibucisn de ejemplares de ella mediante alquler 0 préstamo piibics. SRN Faliciin espns ohra enmpleta: R4-TRATANG-3 ISBN Edicién espadiola volumen 8: 84-7841-024-4 ISBN Edicon orginal: U4 /1-09/943 Impresa en Espaia — Printed in Spin Depdsito lel B: 2007-91 (En) Inprime: HUROPE, S.A. Ragrad, 2-4 Barelona indice de capitulos DECIMOSEGUNDA PARTE (CONTINUACION) COMPLITADORAS, 58, Programacién, 1897 Peter G. Andeison, Jobn A. Biles, Tames R Carbin, Warren R Carithers, James A. Chmura, Chris, Comte, Lawrence A. Coon, Mary ‘Ann Dvonch, Henty A. Edinger, James Hammertan, Jack Hollingsworth, Guy Johnson, Peter H. Lutz y Rayno D. Niemi Programacién estructurada, 1808 Panorama general del proceso de programacién, 1898 Software Ue sistenras, 1901 Lenguajes de programacién, 1902 imulacién de sistemas, 1918 istemas de bases de datos, 1920 59. Organizaci6n del procesador central, 1923, Melvyu M. Drossinan Estructura y funcién, 1924 Unidad de control, 1925 Instruveiunes, 1926 Organizacién de ductos, 1928 Operacién de la CPU, 1928 Unidad aritmética y légica, 1931 Algoritmos aritméticos, 1934 Microprogramacién, 1944 Microprocesadores de “rebanadas” de bits, 1951 60. Sistemas de memoria, 1953 Tay Michlin Introduccién, 1954 Detiniciones, 1954 Hardware de memoria, 1956 Arquitecturas de memoria, 1957 ‘Memoria virtual, 1961 61. Entrada y satida (110) de los sistemas de computacién, 1965 Sam Goldwasser Introduecién, 1966 Tipos y ejemplos de dispositivos 1/0, "68 OP Consideraciones sobre sistemas generales, 1976 Estructuras de ductos de sistemas /O, 1978 Interfaz de hardware y software, 1982 VO controlada por el programa, 1985 VO setivada por interrapeidn, 1986, VO de acceso directo a la memoria, 1989 VO mapeada por la memoria, 1990 Técnicas de VO avanzadas, 1993 Resumen y tendencias en los sistemas VO, 1995 62. Microcomputadoras y jeroprocesadores, 1997 Edward J. Lancevieh Tipos y tecnologias de procesadores. 1998 Caracteristicas arquitecténicas y modos de direccionamiento, 1998 Conjuntos de instrucvivues, 2006 Ejemplos de programacién, 2013 Principios de vinculacién, 2015 Dispositivos de memoria de microprocesudores, 2022 Controladores de dispositivos y circuitos de interfaz, 2024 Sistemas de desarrollo de microprocesadores y aunilianes de disefio, 2030 Seleceién del microprocesador, 2034 63. Ingenieria de software, 2037 Frederic L. Swern Introduccion, 2038 Metodologia de 1a programacién, 2038 Administracién de proyectos. de software, 2041 (4, Graficado por computadora, 2047 Guy Johnson Introduccién, 2048 Hardware de graficado, 2048 Software de graficado, 2049 Conclusion, 2056 Redes de comunicacién ‘de computadoras, 2057 Richard Van Slyke Elementos de redes, 2058 Topologia de redes, 2060 Modos de conmutacién, 2060 Proceso de disefio. 2062 Arquitectura y protocolos, 2064 DECIMOTERCERA PARTE ENERGIA DE FUENTES ALTERNATIVAS 66, Conversiém de energia, 2069 Terald 1), Parker Conversién termoeléctrica, 2070 Conversién termoiénica, 2072 Conversién fotovaltaica, 2073, Conversién por celdas de combustible, 2079 Conversién magnetohidrodinémica (MHD), 2082 Conversion de energia térmica solar, 2083 Conversidn de energia edlion, 2080 Conversion geotérmica, 2094 Combustibles obtenidos de desechos, 2097 Conversién nucleoeléctiica, 2100 67. Sistemas de energia eléctrica, 2105 Daniel D. Lingelbach Sistemas de distribucién, 2106 Fluctuacién y regulacién del voltaje, 2113, Correccidn del factor de potencia y potencia reactiva (kWAr), 2117 Proteccién de sistemas, 2122 Dispositivos de protecci6n contra sobrecorriente, 2128 Dispositivos de proteccién contra sobrevoltaie, 2130 Conexién a tierra del equipo y del sistema, 2132 68, Miquinas eléctricas ¢ iluminacién, 2135 Daniel D. Lingelbach Tipos basicos de maguinas de CD y CA, 2136 Caracteristicas de tuncionamiento de las méquinas de CA, 2136 Caracteristicas de funcionamiento de las méquinas de CD, 2139 Seleccién y aplicacion de motores de CA. y de CD, 2142 Fundamentos de control de motores, 2144 Muminaci6n, 2147 69. Administracién de la energia, 2159 Wayne C. Turner Oné es administracién de la energia?, 2160 = Disefio, inicio y operacién de programas de administracion de energia, 2160 Anditorias de energia, 2162 Listas de control para proyectos de administracion de energia, 2165 Oportunidades en la administracién ‘de energin, 2170 Indice de materias, 2175 CAPITULO 58 Programacién Peter G. Anderson John A. Biles Tames R. Carbin Warren R. Carithers James A. Chmura Chris Comte Lawrence A. Coon Mary Ann Dvonch Henry A. Etlinger James Hammerton Jack Hollingsworth ‘Guy Johnson Peter H. Lutz Rayno D, Niemi School of Computer Science and Technology Rochester Institute of Technology Rochester, Nueva York $8.1 Programacién estructurada $84.1. Panorama general a 58.42 Lenguajes especificos 582 Panorama general del proceso 58.5 Simulocién do cistomas de programacion 585.1 GPSS 98.2.1 Escrtura de un progame 585.2. Simscript ILS 587 Fjemeidn de un programa 3853 SIMULA 58.3 sotwae de temas B55 SEA $84 Lenguajes de programacién $8.6. Sistemas de bases de datos $8.1 PROGRAMACION ESTRUCTURADA “Program estucturada” es un término que tiene tives spicata par diferentes peryone: 31 bien 5 cif determinr el inicio exacto dela “revolucin™ dela programacion estructurada, puede desire que fesse ha onvertido en und discipline. Este Gsepine inciuye una see de ideas que pueden apicarsecusndo lasolucion un problem significa produc un progra. ma para una computadora El pego fll a 1s prt thio dela programacion ectrotiraa linen al dea ‘olla de un procucto: um programa que pose cieras Carastristieas Sin embargo, la programacion est. trata preende ademds esiatecer el proceso que se émplea para obtener el resultado deseado. El nombre de E. W. Dijstra aparece una y otra vez cuando se face um andlsis retrospective dela ales de ln prox framacién estructurads, En su obra Programming Consicered as a Human Actoity, Dust props ds manera convingonte la vision de probleme Com plejos en una serie de problemas de’ menor tamano para su solucién (el metodo de "divide y vencerés), También hizo un reouento de sue expetimentos con programas sin instrucciones GOTO, y descrbig la ma- Sor clardad conseguida de esta forma y el flujo de Eontrol det programa en tsnuineo de insrucsionse IE {enel caso de wavectorias de programa condiciones) € instruciones WHILE (para travectoriasrepetivas, deci, cts) La base tedrica de la programacidn esructurada fue dispuest primero por Bohm y Jacopin despues por ‘Ashcroft y Manna, ellos denvostoron Ia pootbiitad de converts cualquier diagrams de flujo en uno equi Salente en ef que slo se utlizaran combinaciones de Coupuucites Stindares Ue digraas de-dupe "es tructurados” (que corresponden a insrucciones IF y WHILE). El documento de Dijsits, “Structured Progrim ring”, apoy6 los programas “libres de instrucsiones GOTO*princpalinente para que. se_prestaran pruebas de corrgcln (es det, los programadores po: Fein razor tne peng) Desde mediados dela dcada de 1970 hasta el pre- senve a programacion etucturada 6 ha incorporaco fn ina metodologinestructirada mayor. qe, com. prende todos los aspectos dla producsién de wn pro- rama. Esta nbeve apeciacion Ge la programacion e- Prerenta un adelano. creclente, hecho: posible. por §uienes trabajan con computadorss ‘La revolucn de a programacion trad contigo una riqueza de herr sin con ls cuales deben trabajar los programadores, Un método paricularment ith es el Gel “seudocdd 20" o"lenguae de defo dl programa”, ene ual las gsircturas de control de a prowramacionestucturada Gstrucsones IF y WHILE’ lsmadss a procedimien- tos) se eombinan Gon un texto ordinaio on inglés para describ un programa al mas alto nivel (es deci,me- nos detallado) Este método, que sustituye al clisico Giagrama de fujo como teenca de dseio y documen- tec, se aprovecha en la seccgn que sigue. en qu se snalize un programa ordenador de burbuje $82 PANORAMA GENERAL DEL PROCESO DE PROGRAMACION $8.21 Escritura de un programa En esta seccin se presenta un panorama general de la fonina en que se geuera un programa. Para ayudar en la exposicion se escribiré un programa pequefio me- diante el uso de un lengusje conocido como seudo- codigo 0 lenguaje de diseno de programas (FDL), que es una mezela informalmente definida de un texto or- dinario en inglés y sintaxis parecide a la del lenguaje Pascal o Ada, Las ventaas del seudocodigo radican en aqie puede ser mae fail de entender que los lengiajes de programacién formales y no abruma al progr mador con detalles de sintakis que no tienen impor- tancia durante el disefo del algoritmo. Sin embar- 4, como el seudocédigo es similar al lenguaje de la Implementacion fina, a primera aproxmacion @ una soluci6n puede evolucionar en forma natural hacia vn producto terminado en forma gradual y ordenada. Las estructura bésieas de control de seudocédigo se ius- tran en la figura S81 E] programa por escribir ordenaré una lista de NV enterds en orden de magntid ereiente. El metodo {que apliaré consists en busear el valor més grande en la lista de entrada, desplazat al final de Ia liste y repetirel proceso para los N — 1 valores restantes. El proceso continua hasta que slo alte un valor por ser ordenado (una lista de longitud 1, por definicién, esté ordenada). Este método de desplazar el elemento sis grande al final de la lista serviré para comparar elementos advacentes. intercambidndolos si estén fuera de orden, Este método se denomina ordena- tmiento de Duibuja debido a que el elemento inés pe- {ueto se eleva como una burbuja hast Ta parte més alta de la lista® LL lista de ndmerus se representa por medio de un nombre. ¥ los elementos individuals de la lista se re- presentan por medio del nombre de la lista y un subi fice. Segin esta norma, el primer elemento dela tsta Ase denota A(t]. y ef elemente 21 de la lista Be denota Bi) En el caso del programa que aqui se considera, se Namard TIST a ta sta de mimeros, y se dectara Ta intencion de utilizar la lista de la figure 58-2. Esta de claracion menciona LIST como un vector (o un arregio unidimensional) anda mucho de 100 valores enteros, lamados LIST(1}, LIST}... LIST{LO0}-Por tanto, el programa podrd manejar fasta 100 elementos conte: ridos en Ta lst, La declaracién de LIMIT como un valor entero ini se utilizar para indicercugntos de los 100 posi bles elementos de la lista ce estén utilizando en reali dad_en un momento dado. ‘Un método para determinar cudndo se han ordena- do todos menos uno de los valores originales 2c vale de {a variable entera LAST (que se deberé declarer con LIMIT) como marcador de lugares. Los elementos de LIST(1] « LIST[LAST] estarén desordenados, y los elementos de LISTILAST + 1} a LISTILIMIT] estaran fordenados y serén mayores que todos Tos elementos 1098 Tie eonaaar co ineresionne por ajaata en tno endeia® sea vedas end while for counter: = “aor ina to lor fa” do ‘ersaora ce endif Fig. S61, Estructuras bsicas de control en sendocidigo, no ordenados. Inicislmente LAST seré LIMIT, para Indicar que todos los elementos estén desordenados. En le figura 58-3 se muestra el seudocodigo de un mé- tava de hha nical La notacién “:=" significa “hacer la variable de la sequterda igual al contenido de la Vanable de la dere- cha o al valor de la constante del lado derecho". La instruccidn “while” es una orden repetitiva que ejecu- {ard todas las instrucviones stuadas entre la instrucci6n “while” inicialy “end while” final en tanto la condicion sea “verdadera”. La condicién “verdadera” correspon- dea LAST > 1. La condicién se volverd por ultimo falza", ya que LAST ce e:td reduciendo en | cada vez que se ejecuta el contenido dela instruccién while. La disminucion de LAST en 1 se expresa de manera sim- Delica como LAST = LAST I (fig. $8 1) La porcion de a instruccién while que hace ascender cl elemento més grande hasta el final implicg la compa- racion de clementos adyacentes y su intercambio cua do estén fuera de orden. Por tanto la instruccién while Ge la figura $8.3 se afina hasta obtener la forma de la Figusa 56-4, El recorrido a través del arreglo LIST de LIST(1) « LISTILAST ~ 1] se realiza por medio de una instruc- Gdn "for", que have posible que ua vate entera, 1 tome valores sucesivos desde 1 hasta LAST ~ 1. inclue sive, Esta variable se emplea como subindice de LIST, ¥y se Incrementa en 1 en el terminador “end for". Ei intercambio se realiag en tres pasos mediante el uso de Panorama general del proceso de proaramacién ‘una variable entera temporal, TEMP. TEMP I de- beran declararse con LIMIT y LAST. El tefinamiento final se ilustra en la figura SRS El contenido de la porcién “then” de Ia instrucsion “if se ejecuta entre “it” y el termiador “end it” so: lamente cuando la condicién ex “werdadera”. De lo Contrario no se ejecuta la parte “then” de la instruc ion. Los elementos de la lista se pueden imprimir mediante el uso de una instrucsién “for”, como s¢ muestra ea la figura 58-6 Por iltimo, todas las piezas se conjuntan para ob- toner el programa en seudocédigo completo, como s2 ilustra en la figura 58-7. Obsérvese el principio de la ‘ateja inicio-inal para delimitar todo el programa, y el patcamiento de los extructurae de control "if, “while”, ¥ “for” con sus terminadores correspondiente. 58.2.2 Fjecucién de un programa Después de haber diseado y escrito un programa en tun lenguaje de alto nivel, el siguiente paso ex ejecutar- lo (cortegirl Esto se realiza en cuatro pasos 1, Compilacign del programa en “ebigo de mé- uina”. 2. Enlaces (vinculacién) de las piezas 0 partes del progtama ‘Carga del “e6digo objeto” resutante en la me- moria de ta computadora 4. Ejecucion det programa, 3B Compilacién, El proceso de compilacién lo realiza un programa llamado compilador, el cual traduce 2 “cd- dign objeto” el programa “fuente” eserit en lengiaje de alto nivel. La meta bésica consiste en traducir todas Jas partes simbolias del programa fuente (nombres de variables, rétulos de instmiociones, operadores como + 0 ~, etc.) en aimeros de la maquina (ditecciones para vVanables y fotulos, “codigos de operacion” de instruc ciones de la méquina para operadores, etc.) Var LIST = ary (1.100) of sey LIMIT siege: ig. £82, Declaraionse [Ast = UIMIT: while LAST > 1 do Desplazr ol mayor dels elomantos de LISTIN SLISTILAST) hose el foe ln es a USTILAST). Recusr LAST en 1 ind while Fig, 83, Ordenador de butbua nici 1899 Programacién TAst = OMIT, while LAST > 1 do ve LET} y LETLAGT 4 do nto con el aguents J. # no ean sroden, termes end for LAST 2= LAST =1 nd while Fig, S84, Refinamiento del_método de ordenador de burbuia Al tradueir un programa fuente. un compilador lo leeré por completo una o més veces. En cada “paso” el ‘oupllador realicard algunas Ue las tess siguicutes! Anilisis lexicol6gico. “Analisis sindctco. Manejo de tabla de: simbotos. Generacion de c6digo. Optimizacion, Algunos lenguajes, més notablemente el Pascal, se disenaron para un compilador de “un paso”, 0 que significa que un compilador de Pascal leerd wn progr’- ‘ma Pascal slo una vez yrealizaré todas las tareas men- cionadas al mismo tempo. Otros Ienguajes, como el FORTRAN, uelen tener compiladores de “dos pa- 0s". En el primer paso el objetivo consiste en realizar el andlisis lexicol6gico y construi la tabla de simbolos. En el segundo paso se genera el cddigo. EI andlisislexicoldgico divide el programa en “se fales" o “prendas” indivisibles. Por ejemplo, en la ins- truocién de lenguaje Pascal PRECIO:= COSTO - DESCUENTO + + IMPUESTO PRECIO se consideraria una seftal nica, := seria ota, COSTO otra, ec., hasta sicte interpretaciones. Después de realizar ei andlisis lexicoldzico, el com- pilador realiza un “andlisis sintéctico” de las sefials, lo, (ual asegura que estas se dispongen eu secucicias“le- gales” para el lenguaje que se esté compilando. Si una Instruccion no es sintécticamente correcta, el comp- Jador imprime un mensaje de error a fin de indicarly al programador. El analizador sintéctico también agrupa las sefales de insrusciones comes en “suberpresiones” que reflejan el arden en el eval ee realizardn las operacio- nes. En el caso de la instruczién de Pascal dada, por ejemplo, un compilador de Pascal estandar generaria 1un e6digo que restara DESCUENTO de COSTO antes de sumar esa diferencia a IMPUESTO. Por otra parte, serfa posible construi un analizador sntactico que hi- ciara primero la suma y la restara de COSTO, lo que produciria resultados diferentes. Este orden de “precedencia” de operaciones se de- fie on forma neguivoes on ends langue. Esto quiere decir que una insuceién legal dada de un lengusje espootico se puede analzargramatalmeate ed Un sole forme, como lo detrinan ls “rogls snc de ese lengua. El compilaor reconocey trace los programas que se apeguen a estas rela. Ie siguiente tarea que deber realizar cl sompiledor es la generac del codigo obieto que cuando se ‘ecu, cumplalosobetivos del programa, I digo ‘hjto cake el mam formate que el que produce in tntamblador y se puede considerar una serie de a ‘eros que se eargardn en la memoria de ls mdguin. ‘Una lsuuccidn individual de lengua de alto sivelcomudnmente se complica én Una serie de varias insrucions_ de la maquina. Esto ‘debe a qe in amyor pate dels wonptadovas Gone inst nes que solamente relish fareas muV simples, mien- tras que os lenguajes de alfo nivel suelen conse Terramentts conceptual pets ta suluconat Prolemas. Es labor del complador tad esas Complejas herramienta a nstrvsiones simples es de- ci, desglosa la operaidn comple en dveson pass Eldon generadn por in complador para un pro grama escrito en un lenguje de alto nivel suele ser fenoseiente gue el cddgo de un programs en les fisje ensamtlador seri para retoar isa tara, Eleédigo que generaban los pimeros compl. Iadores ers notonamente nein, per os mls mo- dsrnor se aerean mucho masa eign “dptima Lx finan del codigo para elimina instuccionesredun- dantes se denomina optimizacon pede Teshzarse por el progr en un paso era del compilador. TAST = LIMIT, while LAST > 1 do for = 1 LASI — 1 40 WTISTIE FISTIE+ th then TEMP := LISTIU: Listy = LISTI+ 1 LISTIE+ 11 3= TEMP: end for LAST := LAST ~ Is end while Fig. $45, Refinamiento final del ordenador de burbuia fort = 11a LIMIT do ote ISTH: end for Fig. $86, Instrvci6n “for 1900 Enlace (vinculaci6n) y carga. Una vez que un progr ‘ma fuente se ha compilado en cédigo objeto, suele ser nceesario “enlazarlo™ (“vineulerio")y *cargorlo” cn la memoria. Estas dos operaciones, enlace (0 vincu- IaciGn) y carga, a menudo son realizadas por ef mismo programa, un “cargador de enlace", pero aqui se anali zan por separado. El enlazador une los médulos separados que pueda haber generado el complados. En lengucjes vom el FORTRAN. por ejemplo. cada subrutina o funcién termina como un “médulo objeto” separado. El pro leis prinsipal que se lserva al enlaar etuy t6- dulos dbjeto-en un solo médulo de carga implica la ‘modifcacin de las direcciones de las variables locales Ge cada modulo objeto para reflejar donde figura ese ‘médulo en relacén con los ottox méulos objeto. ‘La mayor parte de los compiladores faclitan esta moditicacion ‘creando direcciones “relaivas a cero” para rétulos de variables instrnccinnes enyas diree- Ciones reales dependan de dnde se cargue el médulo nel cual figuran. Despues,elenlazador moiiea cada, hina de ls ditecriones relativas a cero de un médulo objeto agregindoles la suma de las longitudes de los ‘modulos objeto que ya se han cargado. Carga de un programa. El cargador simplemente co- pia en la memoria prierpal de ia maquine el modulo de carga enlazado, de modo que el programa pueda Por dltimo ejecutarse. Su funcidn prineipal consste en Indica al sistema operativo la dreccidn donde comien- 24 el médulo de carga y la longitud det rasdulo. Ejecucion de un programa. Después de que un pro- _grama ce ha compiledo, enlazado y cargado por fn ext listo para ser “ejecutado” 0 “corrido". Lo unico que necesita conocer el sistema operativo és la “direcciin inicial” del programa. Esta cs la dircecién fsa en Ia ‘memoria de la primera instruccin ejecutable del pro- nto principal del programa. E) programa “ter- cuando la cjecucion de una instruccién genera ‘una “trampa”, y en ese momento el control de la mé- 4quina se retransfiere al sistema operativo. 58.3 SOFTWARE DE SISTEMAS El concepto de software de sistemas comprende todos los programas de apoyo que suelen comprarse al dis- uibuidor de vomputadoras en el momento en que se adguiere la computadora misma (este software puede estar incluido en un paquete con el hardware de [a com- putadora, o tener gue comprarse por separado). Una ompitadora sin saftware de sistemae es tina her mieata en extremo deficiente para el programador de aplicaciones tipico; las componentes que siguen suelen cansidevarse nececaris para el veo del hardware tn sistema generalmente dil Ensamblador CCompiladores e intérprets. Enlazador, Depurador. Software do sistemas LIS = array [1100] of integer; TIMITTAST 1, TEMP" integer: begin LIMIT :=0: we ‘no 0° oti dt erin do LIMIT := LIMIT + 1; iF LIMIT > 100 then wt (nay deraeados elemantoe 0h i eta halt ena read (LISTILIMIT): end while (LIMIT = 0 then halt LAST == LIMIT; while LAST > 1 do for := | to LAST - 1 do WLIST(N) > LISTE 1] then TEMP '= LISTU LIsT{y) = LIST + 1; Listit'+ I]: TEMP, endif end for end while for Ls= 1 (9 LIMIT do seit (UIST: end for end, Tig. 587. Versién final del programa ordenador de burbuja ‘en seudooddigo Sistemas de manejo y editores de archivos ‘© Unidades de entrada y salida © Sistema operativo. ‘del Ienguaje de contol Ensambladores, compiladores ¢ intérpretes. Tradu- vent protanuas de computaora siulblicas al lenguaje binario del hardware de la computadora misma. Estos programas son quiz’ las herramientas que més trabajo fahorran en ldo el repertorio de la computedora, ‘Ademés de proporcionar una notacién para utilize al nivel del ser humano o de la aplicacidn, muy a me- rhudo estan equipados con bibliotecas de programas para el tiempo de la ejeencidm (carrda) a fin de teal Zar procedimiientos comunes, como evaluacion de fun- ciones matematicas, ordenamiento, y formateo de la fenteaday Ta alida, Enlazador. Es un programa de computadora que combina en una sola tnidad para ey ejecucién las come ponentes del programa, como un programa principal, Subrutinas y componentes de fa biblioteca del sistema Esto permite un uso sutomatizado de las bibliotecas 1901 rogramacién proporcionadas por el vendedor, las instalaciones 1o- tales de apoyo Ia computedara 0 los pragramadares individuales del equipo encargado de un proyecto. Es- ‘as bibliotecas hacen posible [a facil construccion y uso de las componentes de software activas la madurez de Ja construcci6n del software en una disciplina parecida ala mgemeria Depurador (debugger). Es un sistema especializado de prueba de programas que permite a un progta- ‘mador verifiar un programa en desarrollo, probarlo {en un subconjunto selescionado de sus pasos, interro- {gar Y modiicar sus Variables, medir su fendimmento, ddetectar y eliminar lot erroret que tenga. Unidades de entrada y sllda, Se utizan para con- tla lor pectrios de uoa computador! lectore y rforadoras de tatjels,uniades de cinta maghéica de papel, impresoras, unidades de disco duro ex ite (0 Gsquots), terminsles de uueroe y cualquier equipo que vince ls computadra con et mundo ex- terior Estos compliados process se dsarolan un ‘ez y son utiizados en todn las epiaconcs, Sistemas de manejo y editores de archivos. Consti- yen un medio edeeaado de almacenamiento, recupe> ration y modificacin de programas y datos. El almace- ‘namiento de discos en linea y el de cintas magnéticas y discus fuera de nea Ue Ie vouputadora voufor mate ui sistema de archivo dptimo y mucho més flexible que las gavetas de archivo de sistemas alimentados de papel Los sistemas de manejo de archivo se extienden, ext povencia, hasta convertirse en elaborads “sistemas de ‘bases de datos” de referencia cruzada (que se describen mas adelante), y 10s edtores de archivos se extenden hasta transformarce en “praresadares de palabras {que hacen posible que las méquinas de composicion de ‘documentos produzcan trabajos terminados actualiza- dor tan fécilmente coma padtian formar dibnjos en borradar o dibujos marcados con tipos mediante el uso de sistemas alimentados de papel Sistemas operativos. Ayudan a los usuarios de com- utadoras édministrando por ellos los recursos del sis- tema. Entre estos recursos tuelen contarse lor dispo- sitvos de entrada y sada [(U/O), de manera que mo- chos usuarios puedan imprimir sin tener que dejar su salida codificada, la memoria principal y la auxlis, y Ia unidad de procesamiento central (CPU) de la com- putadora misma, El sistema operativo comparte estos Fecursos a fin de que una sola computadora opere como si fueran varias atienda a divetsos usuarios de manera concurrente, por lo que les docenas de usua- Fios de terminales de tsmpo compartido tienen la im presion de ser los tinios usuarios del sistema, tema del lenguaje de control. Es cl procesador ue interpreta las solicitudes de los usuarios Vlas trans- mite al sistema operativo, Los usuarios especifican, en cl Tenguaje de woutiul, Io que pretenden hacer en la computadora: compilar un programa. ejecutar un pro- rama con ciertos datos, imprimir un archivo, etc. 584 LENGUAJES DE PROGRAMACION RAL Panorama general Vin lengusje de programacin permite al usuario re- presentar un algoitmo en una forma que sea significa- tiva para la computador. Los problemas y, por tanto, las algoritmos para resalver las problemas vatfan en forma considerable. A partir de la necesidad de expre- sar algontmos muy diferentes se na ongynado una gran Yariedad de lengusjes de programacion que varian considerablemente en tipo y capacidad. El profesional bien informado detine el problema, determina un al goritmo para resolverlo y después evalGa los méritos de los diversos lenguajes de programacién de que dis: pone. Entonces elige el que mejor se adapte al proble- mma, Para tomar una dessin, deben considerare di \ersos aspectos de un lenguaje ‘Una division importante de los lenguajes de progra- macidn es: lenguajes de bajo nivel y de alto nivel. Los Tenguajes de bajo nivel tienden a ser muy parecidos al ceiigo de la méquina. Esto los hace difctes de enten- der, y requicren mucho trabajo de programacin para realizar tareas minimas. El lenguaje de bajo nivel més comin es el ensamblador, que es espectfico para cada méguina. Los programas csertos en lenguaje ensam- ado orf general no se pueden transport a as Ls lengajes de lo nivel aden a sr “amables con el usuario” y razonablementeféciles de leer. Una sola instrccion de un lenguaje de alto nivel puede reals el webajo de muchas insiruciones de leniguaje ensamblador. Alpunos lenguaies de alto nivel bien co- nocidos son: FORTRAN, COBOL, BASIC, PL, SNOBOL y Pascal, Inclusd las Ordenes que acepta ei sistema operativo de una eomputadara podrian consi: erarse enguaje de alto nivel. A este respecto, el siste- ‘ma operativo UNIX" tiene un conjumto de instruccio- res en extremo poderosss Los lengusjes de programacién se pueden clasifi- cat, en terminos generates, como traducidos 0 in- terpretadas ‘Cominmente in pragrantaesreto en in Jenguaje traducido se somete a un compilador o en- samblador, y se produce otra version del programa. La fhueva versin, llamada archiva abjeto, se escribe en el codigo de la méguina y no es ineligible en absoluto Salvo para la computadora, El archivo objeto se carga ‘yejecuta cuando se necesita el programa. FORTRAN, COBOL, C, PLITy Ada son algunos de tos lengusjes traducidos més notables, En general, los. lengua- jee compiladoe requieron declaraciones de variables y ‘ealizan una verficacion de tipo esttico. Sin embargo, ‘muchos lenguajes eompilados permiten algin tipo de asignacién dindmico del almacenamsiento, ‘Un programa escrito en un lenguaie interpretado no se envia@ través de un compilador o ensamblador. En lugar de ell, se carga el intérprete en la memoria pra cipal junto con ef programa. Entonces se interpreta el programa linea por linea conforme se ejecuta,y el fnéiprete cuvia els womputadone ef wdigy de mau UNIX es una mares regisada de Bell Laboratories. 1902 Lenguajes de programacién a adecuado. Tipicamente, el lengufe saterpretado transports esciptres del temp de In conia, pero no require la detaracion de variables, La mayor par. te ce los lenguajesinterpretacosreitzan vericacon ‘de tipo dindmico, y por fo general todo el almace- namiento se asign en forma dindmia, Algunos de los Ienguajesinerpretados mejor concedes Son BASIC ADL, LISP y SNOBOL. Li eficiencia de un lengusje de programacign se ex- presen terminos de Velocidad en ef momento de la jocuelén, ln cantidnd do expaco qu se neceia pore operate programa yl cantidad de abajo de props. ‘ucgn que xe requere. Los lengusjes tadcios son uy eficontes on el momento dla eecsisn Sin em Bap tei de xa eeu perdi de fexiblidod. Los lenguajesinterpetados estén died dos para ofeoor la mnie flenbiidad del programa, pero po lo general se necestan mas tempo espacio para fa ejection. Tocea Tengujes son compildos 0. interpretados “puros”; mds bien, casi todos son un hibrido de los dos. Aunque el FORTRAN 7 se considera un lengua: je compilaco, con frecuencia sus nstrucconcs de for mato son inplementadss por intrpretes VO. Por otto Indo, ena mayor parte de las implementaciones de SNODOL, cl pista ens eu ete lengua se ue dice a un célgo mds “arable con la msqung”y ds. [esse interpreta el nuevo cédigo. El Pascal esl {rid reat entre el enguje waduld ye nverpretido ‘Algunas versiones del Pac genera interpreta el ‘édigo P* (an sistema de programscign para una computadora Pascal mica, J otras traducen Sespes tl ehdign P al lenge de fs maquina en ejecoion Ores propiedades de ua lenguaje que debencons- erase Guano se jute la sebidnd et engusje Las estructuras de datos que atrece. Su portabilided. La cantidad de documentacién disponible, La breveded de Ia detinicion del lenguaje Su idoneidad para resolver un problema. © La disponibilidad de un compiladoro intprete 58.4.2 Lenguajes especificos Aqui se describen diversos lenguajes de programacién ppor su transcendsncia histrica, puntos fucrtea y fo- Ferencias. Se presenta un programa como ejempio, el de ordenamiento de burbuje, como punto de compa- racién. También se presents un segundo programa como ejemplo para mostrar las facultades especticas de cada lenguaje, en especial de los lenguajes més es- pecializados. Algol. Algol es el producto del trabajo de un grupo intemacioual de cieutifives especatizadus en voupur taci6n. Inicialmente llamado International Algebraic Language (lenguaje algebraico internacional), se hizo pblivo en los informes Algol 38 y Algol 60. Entre las Caracteristicas por las que el Algol se hizo famaso se encuentra el hecho de que en un principio se definis en {forma de metalenguaje, que despues se conocio como IRNF, y fue el vehicula para hacer que este metalen- ‘guaje fuese ampliamente conocido y aceptado*®, El Fenguaje era simple (lo tenia seis tipos de mnstruceio- nes y unas cuantas restriceiones). Por ejemplo, lor identificadores podian ser arbitrariamente largos, y un arreglo podia tener un numero cualquiera de dimen- siones. No obstante, el lenguaje era poderoto, en el sentido de que inclufa estructura de blogues,funciones Y procedimientos recurrentes, paso por valor y paso jor nombre, Originalmente el lenguaje no tenia facili ades de entrada y sada, aunque ésts las proporcio- naron después los procedimientas. Se esperaba que to- das las funciones y procedimientos definides por el usuario se definieran internamente en el programa so- licitante. Con esta caracteristica, el lenguaje Algol se podia llamar oltamente tpificado. Fus discfado para realizar clculos cienifcos,y fue el lenguaje de publi- cacién de algoritmos en ‘ia comunidad ACM (As- sociation for Computing Machinery). pesar de ser popular en Europa, Algol nunca suplanté a FOR- ‘TRAN en Estados Unidos. No obstante, Algol, su me- talenguaje y los esfuerzos de investigacin realizados cen la implementacién de Algol han tenido un profundo efecto en la computacién y en lenguajes posterior, somo el PLT, Pascal y Ada, inigualadu quizé por ningdin otro Ienguaje. En la figura 38-8 se presenta la versién en Algol del programa ordenador de burbuja COBOL. Durante los titimos aos de la década de 1930, el Department of Defense y o:ras agencias del obierny de Estados ais estaba cousedieud cour ttatos. Los lenguajes de programscién que st ut zaban para estos contratos variaban desde el alto a byjo nivel. Esto volvio excremadamente costoso el tralnajo de seguit los contratos y mantener las progra- mas, ya que se tenia que capacitar a auditor y pro- fgramadores para trabajar con una amplie varedad fe lenguajes' de programacidn. En cnneciencia, adopt la idea de'un lenguaje comin para realizar 0- 4os'los contratos del gobierno. En 1959 se creo el Committe On Data Systems Languages, CODASYL, integrado por representantes de las agencas del go: bierno de Estados Unicos,fabricantes de computado- ‘at ueuaron de computadoras y universidades. Este mit decid crear un nuevo lenguaje debido aque la ‘mayor parte de los enstentes en ese tempo o se ‘ilapabon bion a la tare del procesamiento de datos Lastierencas del hardware de os fabricantes de com- putadoras también contrbuyeron a la dificulted de {Hloptaraigin lenguaje de ota Sposa. El nuevo len guste, COBOL. (common business-oriewed language, Fenguajs coméa orientado a las empresas), tena el propésito de quc ls entendiran personas con escasos Conocimieaios de computacién®”. Tas espciicacones inicales se publiaron en el mes de abn de 1960, s© hiieron revsones on 1963 y 1965, Para preservar las caracteristicas comunes del COBOL ente ios diferentes fabricentes, el American atiouel StandarsIasttute (ANSI) pubic, en 1968, sugetencas para hacer del COBOL un lenguaie de programacion estindar. Por tanto, se puso a dispo- 1903 Proaramacion rocedure demo besin real aray X{V': 100}, procedure bubble (A, FIRST, LAST); real aray A[FIRST : LAST, ‘gin integer I; real TEMP: boolean SWAPPED; LOOP: SWAPPED fale: for I= FIRST sep ! unt LAST ~ 1 40 IFAT) > AML + 1} then begin TEMP :— All AM All I Alle 1]:=T SWAPPED '~ true; comment: record that a swap was needed: end; SWAPPED then goto LOOP; comment: repeat loon: ends ead(X); bubble (X, 1, 100}; write (X) end Fig. 68, Programe ordenador de burbuja en Algol sicién una norma para la construcci6n de compilado- res de COBOL. Los compiladores de COBOL gue se gan a la norma se conccen como compiladores ANSI COBOL. En 1974, ls ANSI revis6 las especifica- cones estindares de COBOL y actualmente estén en revision nuevas norma, COBOL ¢s el lenguaie de computadora més am- pliamentevtilizado en el mercado en la actualidad. Al- fgunas estimaciones indican que en el 80% de las nue ‘vas aplicaciones de las empresas se utiliza el lenguaie COBOL. Este lenguaje debe su vasto uso a la adop- ‘ion que hviexou de el muchos vouteatistas baj lai sistencia del gobierno: su estandarizacién por parte de la ANSI; sus instrucciones parecidas a las del idioma Ingles, que son mis files Ue leer que lay de oures lenguajes: su gran cantidad de caracteristicas de ‘edicign de datos; sus facilidades para el manejo de ar- chivos; y por ultimo, su naturaieza evolutiva a medida jqne eambian las necesidales de ln emnidad empre- sarial. Las principales deficencias de COBOL son su verbosidad, la eafencia de capacidades matematicas y Is carencia de construcciones estrictiradas, que sf se hallan en el Algol o PLII. Sin embargo, con la discipi ‘na apropiada, los programas escritos en CUBUL puede ser razonablemente bien estructurados El programa de ordenamiento de burbuja imple ‘mentado en COBOL se muestra en la tigura 38-9. 1o- oe los programas escritos en COBOL deberén tener las cuatro divsiones en el orden que se presenta. La division de identificacion da el nombre del programa y otros datos de idemtficacién. (Fm la figura oe han omitido varios elementos opcionales con fines de bre+ vedad y claridad.) La division del entorno contiene ca- ractefitcas basedas en el hardware de un febricante de computadoras, en especial los nombres de los dispo- sitivos y archivos fisicos que se asociaran con los nom- es égicos del COBOL (la instruccién SCLECT- ASSIGN), Laivisin de datos define a estructra de todos os archos yl tipo tamafo de tos los ideneadores (ronblet) que we uean enol programs. La elueula PIC (o imagen, de picture”) define el tamafo 9G [cige porte des soot 9 (numenco) 9 {alfanumérico)] y la longitud por medio del nimero de estos simbole. El smbolo "Sadia que se almacene el 'signo del nimero, mientras que "V ingicaubis- Sion implica del punto desimalstando los dotos nolo contienen. Un elemento que se ule para realizar trims slo pede contener 8, Vy 8. La extctara Jerdsica de los datos ae implementa com el amero Ge nivel. Un regis deberdcomenzat con el nivel OL Un campo sutordinado emples un nimero mayor Fur alo, DETAIL-LINE te compone de dos Ce trenlos FILLER vy DATA-VALUE-OUT. La palabra FILLER et reservada es dec, es una palabra de la Sins vel COBOL que Ueue un spat eyes Se tii evando un campo no necestaindcarse direc tamente por nombre. Ese campo se indice en forma Implicta cuando se hace releretla« DETAIL-LINE. DATA-VATUTP-OUT es un campo edad. 0s, un campo que sevilla para edtar un ndmero en una forma que se puedn Imprimir. Este capo uene un Signo menos (=) dex negation next on lanen Sis positivo,seguido de cut cfs (gts) sin =. zos, ln punto dccmal y dos espacos décmates. Ei nivel 88 lene un wo especial e indica un “nombre de Condicin”- El nombre de condcion ene un valor ver daderofalso,dependiendo de sie ienticadorpre- Sedeate cntane ol valor que se Gu on i entrada dl nivel 88 Ta divs de procedimiento contiene el algoritmo para ilo lo dato. Ls inruccones w agrupan on piiafos con nombre asgnado que. pueden relerise por medio ce las nstrucsiones PERFORM. Le instruc. Eon PERFORM hace que las intrcsones del pata ue se specifica se ejecuten una vez, o en forma re 1904 Lenguajes de programacion IDENTIFICATION DIVISION, PKUGKAM-D. BUBBLE-SORT. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE. CONTROL. SELECT UNSORTED-FILE ASSIGN TO “DATAFILE” SELEC SORTED-REPORI ASSIGN TU PRINIEK. DATA DIVISION. FILE SECTION, FD UNSORTED-FILE 01 DATA-VALUE-RECORD, 05" DATA-VALUELIN "PIC S9599v99, FD SORTED-REPORT. 01 REPORT-LINE PIC X(133), WORKING-STORAGE SECTION. 01 FLAGS. 05” MORE-DATA-REMAINS-FLAG PIC X VALUE “Y”, #8 NO MORE-DATA-REMAINS VALUE “"N" 05 SWITCH-FLAG PICX VALUE“Y" BENUVALUESSWITCHED VALUE -N’ OL NUMRFR-TARLE 05 NO.VALUES_ PIC S999 USAGE IS COMPUTATIONAL. 05 DATA-VALUE PIC $9999V99 OCCURS 100 TIMES USAGE IS COMPUTATIONAL. 0$ DATA-SUB PIC S999 USAGE IS COMPUTATIONAL. 0§ DATA-TEMP PIC §9599V99 USAGE Is COMPUTATIONAL. ol HEADINGS. OS FILLER PIC X(I4) VALUE “SORTED VALUES” D1 DETAILLINE. 0S FILLER PICXXX. 0) DATA-VALUEOUT PIC ~2zz9.9, PROCEDURE DIVISION, MAIN-LINE-ROUTINE. PERFORM READ-ROUTINE. ERFORM SORT-ROUTINE UNTIL NO-VALUES-SWITCIIED. PERFORM WRITE-ROUTINE. STOP RUN, RFAD-ROUTINE ‘OPEN INPUT UNSORTED-FILE. MOVE ZERO TO DATA:SUB, READ UNSORTED-FILE AT END MOVE “N" TO MORE-DATA-REMAINS-FLAG. PERFORM READ-A-VALUE UNTIL NO-MORE-DATA-REMAINS. MOVE DATA-SUB TO NO-VALUES, CLOSE UNSORTED-FILE, READ-A-VALUE. ‘ADD 1 10 DATASUB. MOVE DATA-VALUE-IN TO DATA-VALUE (DATA-SUB), READ UNSURTED-FILE AT END MOVE “N" TO MORE-DATA-REMAINS-FLAG, SORT-ROUTINE. MOVE “N” TO SWITCH-FLAG. PERFORM SORT: PASS VARVING DATA SUB FROM 1 BY L UNTIL DATA:SUB > NO-VALUES ~ I Fig. 589, Programs osdenilor de burbuje eu COBOL, 1905 Programacion SORT-PASS IF DATA-VALUE (DATA-SUB) > DATA-VALUE (DATASUB + 1) MOVE DATA-VALUE (DATA-SUB) TO DATATEMP. MOVE DATA-VALUE (DATA-SU "+ 1) TO DATA-VALUE (DATA-SUB) ‘MOVE DATA-TEMP TO DATA-VALUE (DATA-SUB + 1) MOVE “Y" TO SWITCH FLAG, WRITE-ROUTINE, OPEN OUTPUT SORTED-REPORT. WRITE REPORT-LINE FROM HEADINGS AFTER ADVANCING PAGE PCRFORM WRITE-A-VALUE VARYING DATA-SUD FROM 1 DY 1 UNTIL DATA-SUB > NOVALUES, CLOSE SORTED-REPORT. WRITE-A LINE, ‘MOVE SPACES TO DETAIL-LINE, MOVE DAIA-VALUE (DAIA-SUB) WRITE RFPORT-IINF FROM DFTAI DATA-VALUE-OU TNE AFTER ADVANCING LINES. ly. $89. (com, petida. hasta que una condicién sea verdadera. La f se AT END de la instruccion READ se ejecuta s0- Jamente cuando se encuentra una condicion de final de archivo, Un programa de aplicacién COBOL tipico no ten- {ria un ofdenamiento coditicado con ciclos, como se rmuesten en I fignra S80. sina que en cambio se tii- zaria la instrucciéa SORT?” La instruccién SORT uuiiza un archwo sin ordenar como entrada a una ru tina de ordenamiento, El archivo de salida contendris los registros ordenadas, que se leerfan y procesarian. [Una entrada Ge desenpovon del ordenamiento (SD, de sort descripion) de la seceién de archivos especifies Ia longitud del registro por ordenar y siel archivo se or denaré en orden ascendente 0 descendente FORTRAN IV y FORTRAN 77, El lenguaje FOR- TRAN (formula translator, taductor de formulas)’. desarrollado por IBM a mediados de Ia década de 1950 Principalmente para aplicaciones ciemtficas y de in- enieria, fue el primer lenguaje de alto nivel am- pliamenie usado. Sus facultades més importantes son ‘una ejecucion muy eficiente la faclidad con la cual se puede enlazar los médulos. Esta provision de compi- lacién aparte hace posible Ia generacién de una bir Dioteca de rtinas que se puede uz en a produc cidn de nuevo software La eateustuna bdsica Je ut prugiauna FORTRAN es simplemente el médulo principal seguido de subpro- agramas internos. Los subprogramas externos no ne- esitan recompilanse, sind gue se pueden enlazar, Siempre que sean referidas por una instruecidn FX: TERNAL o por una instruccién CALL explicita EL coun de cracteres et nado a eas ma rricoulas cifras y los nieve caracteres experiales: (pot ere En el e6digo fuente, las columnas 1 a S forman un campo de rOtulo numeénco, la sexta posicidn indica una linea de continuseién y Tae columnas 78 72 son pars lae instrucciones en si. Aigunos compiladores relajan este Programa ordenador de burouja en COBOL, convencionalismo (orientado als taretas y permiten teluso de un formato mas libre (que se utiliza con equi- po moderno), ‘Dada que en el disease dia mayor importancia ala cjecucion eficiente, exsten estrctas limitaciones en canto al numero de tipos de datos y estructuras de ontral Hay cinen vipns. de datos: enters. reales complejos, de dable precision y Iogicos (booteanos) Las estructuras de datos estan limitadas a variables simples yarreglos de hasta tres dimensiones. Las varie bles numéricas se representan de manera implicita por ‘medio de su primera letra, ce lal la N para variables fenteras y Tas otras letras para variables reales; a bien ‘de manera explicita por medio de instrucciones de de- claracién como REAL I, Jo INTEGER A. Las varia bles légicas se deben representar en forma expliita con una instruccién de declaracién LOGICAL. Los larregls se definen en una instruccion de declaracién 0 ‘eu instussign DIMENSION, indicando el nimero de entradas de cada dimensién. Por ciemplo, DIMEN: SION AG.4) y REAL I(10) definen arceslos reales de sJos una dimensign; A cs un arreglo euyoo subindices van de 143, de 1a 4,€ Tes umn arreglo cuyo (nico) subindice va de 1 210 Euisten tes estructuras de contol bésias: GOTO, una ramifcacion ineondicional: IF. una ramificacion condicional; y DO, un constructo de repeticion. Son posible lus subprugiamas inteiues y exteiuvs. Estos Son médulos separados y tienen como encabezado una instruccidn FUNCTION 0 SUBROUTINE. El acceso 3 por medio de wna intruccion CALL (hamavs) para Subrutinas y mediante el uso del nombre para fune ciones. En una instruccién EXTERNAL debersn ci tarse fos subprogramas externos. Los argumentos se Thien teangmite pre mero de ina lista de argimen. tos o indicando ef alcance global de la variable por ‘medio de una istruccion COMMON en el modulo So licitante y en el subprograma. Para mejorat Is efiien- cia, se prohibe el uso de la recursion (es deci. una Subrutma que se ama a st misma). Laentrada ysalida som manejadas por las instruecio- nes READ y WRITE, respectivamente. Con cual 1906. Lenguajes de programaciin quiera de estas instrucciones, el programador especifica {un dispositive por medio de un numero (Impresora, lectora de tarjetas, cinta 0 archiva de dlisen), un mic mero de formato y una lista de variables del programa {que se leeran o eseribirdn, La instruccion FORMAT specifica la forma en que el programador desea que se realice la conversion entre los caracteres binarios Jnternos de la computadora y los caracteres externos egies El programa ordenador de burbuja escrito en FOR TRAN IV® se presenta en Ja figura 98-1. ‘Las limitaciones del FORTRAN IV condyjeron al desarrollo del FORTRAN 77°", que ahora ela version contirmada del lenguaje. Entre jas nuevas ca- racterfiticas importantes ee oventan la adicidn. del constructo IF-THEN-ELSE, la posibilidad de dimen- sionamiento dinmico de arteglos y la adicion del tipo e datos CHARACTER. En la figura $8 11 to presen tg programa ordenador de burbuja escrito en FOR. Tral PL. El desarrollo de PL comenas en 1963, cuando un grupo de usuarios de IBM formaron un subeomité emado Advanced Language Development Commit- tee. El objetivo original de este comité era disefiar un Tenguaje que sucediera al FORTRAN. Su trabajo fue ‘spoyado totalmente por IDM, que buscaba un nuevo lenguaje para hacer un meior uso de sus nuevas com- pputadoras todavia no anunciadas. El comite invits a muchos eapestos de tole el nian do a sugerircaractersticas que pudieran formar parte de este nuevo lenguaje. Adems, los miembros del co- inité cxamtinaron Teuguajes existentes con el fin Je de terminar cudles de sus caracteristicas podrian incor porarse al nuevo lenguaje. Por tanto, lo que comenzé ‘omy uns extension del FORTRAN répidamente se convitié en un Lenguaje completamente diferent. Este nuevo lenguaje se llam6 inicialmente NPL, de new programming language (nuevo lenguaje de pro ramacién). Sin embargo, ce deseché este nombre de- bido a un conficto con el National Physics Laboratory de Inglaterra. Finalmente, se adopto el nombre FL/L, dle programming language T(lengusie de pragramacién 1), La implementacign de este lenguaje se inicié en TBM en Inglaterra en 1904. El primer manual se publ ‘e%en 1068 y el primer compilador se lanz6 al mercado en 1966, ‘Como podria esperarse de un lenguaje dseflado por tun comité, el PLIT es una combinacién de muy divereas construcciones y caracteristicas. Hasta entonces, los Jenguajes de programacin se habian disefado para funcionar més efectivamente en Sens de aplicaciSn e> pecificas (p. ej, el COBOL para medios comerciales, FORTRAN para ciencias e ingenierfa). El PLII se di- 5086 con muchas caractoristions de Gatos y otros len guajes. Se pens6 que PLII era lo suficentemente ge- ‘eral para ser uilizado en la solucion de problemas de tan medio cualquiera! (Quizé la caracterstica més prominente de PLL es su uso liberal de caracteristicas de omisién (default) Virtwalmente todos y cada uno de los tipos de cons. truccion de programacién que pueden presentarse al READ (5, 500)A, 500 FORMAT (110, CALL BUBBLE (FIRST, LAST) WRITE (6,600) 60 FORMAT CH, 1n4ts,2%)) STOP END SUBROUTINE BUBBLE (FIRST, LAST) INTEGER FIRST, |, LAST, TEMP, A(10) COMMON LOGICAL SWAPPD 10 SWAPPD =.FALSE, DO 1001 FIKSI, LAS IF(NOTAAI)GTAML + 1) TEMP = Ad) A= Ade) Ail )= TEMP SWAPPD =.TRUE, 100 CONTINUE Ir (SWAPPD) GOTO 10 RETURN END Fig. $810, Programa ordenador de burbuja en FORTRAN TY. INTEGER ACU) READ 6,500) 4 500 FORMAT (10) CALL BUBBLE (1,10, A, 10) ‘WRITE (6.600) 8 600 FORMAT (IH, 16015,2%)) STOP END SUBROUTINE BUBBLE (FIKSI, LASI, A, SIZE) INTEGER FIRST. | LAST. TEMP. a(S17F) LOGICAL SWAPPD 0 FALSE, RST. LAST ~ 1 TF (A)GT.AU © 1) THEN TEMP = A(l) Ade Als 1) ‘AG 1) = TEMP SWAPPD =.TRUE. ENDIF 100 CONTINUE IF (sWAPPD) GOTO 10 RETURN END ‘Fig. S81. Programa ordenador ce burbuje en FORTRAN 77 1907 Programacion SORTER: PROCEDURE OPTIONS (MAIN): 10) FIXED (31); DECLARE I. Ri ‘BUBBLE: PROCEDURE (A, LO. Hn DECLARE I. TEMP. Ai). LO. HI FIXED (31, ‘SWAPPED BIT (1); DOI=LOTOHI= 1; IF A() > A+ 1) THEN DO: TEMP= AU A= Ad +1 Ads )= Tt SWAPPED: END; END: END: END BUBBLE; [EL PRNGRAMA PRINCIPAL COMIENZA AQUL"Y DOI= 1 TO 10; "ENTRADA READ(BII) END: CALL BUBBLE (B, 1,10); rORDENAR DOI= 1TO 10; rsauDKy WRITE(B(): END, END SORTER Fig. 8812. Programa ordenador de burtuja en PLIL ‘compitador tienen un valor de omusion correspondien- te. Los creadores razonaron que, como la tecnologia de compiladores habia avanzado en forma importante ‘desde los primeros dia de los lenguajes FORTRAN y ‘COBOL, y las mquinas eran cada vez més poderosas, esta potencia se debia aprovechar para faclitar la vida 2 los programadores. Lo que aquélios no apreciaron fue la forma en le cual las earacteristicas de omisién pueden en realidad complicar el proceso de desarrollo de programas. Los progtamadores de PLII tienen que ‘aprender todas las posbilidades de omisién, afin de no introducir erores en su digo debido & una suposicién hhecha por el compilador. PLAT fue uno de los primeros lenguajes de alto nivel ‘en ofrecer libre acceso a recursos del sistema operat vo en el momento de la ejecucién. Otrece medios 2 los programadores para manipular con faclidad la mayor parte de las condiciones en el momento de la ejecu cidn, En casi todos los ottos lenguajes de alto nivel, todos los e1rures y coniciones eit ef uromenty de la ejecuciGn se manejan poniendo fin al programa del ‘usuario, Si bien PLIT esté dsefiado para ser indepen- Gieme Ue te mayuina, viene clerta inclinacion a Ue render del sistema operativo. Los programas de usua- ios codifieados para utilizar las caracteristicas de un sistema operativo especiico no se ejecutaran en un si tema diferente ‘Otras caracteristcas interesantes de PL/I son: un ‘equipo de manejo de macroinstrucciones para el mo- mento de Ia comprlacion, tipos de datos en cadena (de caracteres y bits) y tipos de dator numéricos de pre- cision variable Cuando se propuso por vez primera el PLI se pens6 ue era el lenguaje del futuro, y los primeros compi- adress experaron com mpaiencia. A media ques hicieron evidentes las deficiencia de este potente len- uaje, lor usuarios ce volvieron renuenter a cambiar @ LIL A diferencia del FORTRAN y COBOL. que son estandarizados y los apoya una gran cantidad de hard: ware de los fabricantes, el PLiI es apoyado por unos ‘cuantos distrbuidores ademés de IBM. Los usuarios no estin impacientes por invertir grandes cantidades de capital en software que los ataria al herdware de un fabricante. El programa ordenador de burbuia escrito cen PLT se muestra en la figura $8.12. BASIC. El lenguaje de computadora BASIC (begin- ners all-purpose symbolic instruction code, c&digo de instuciouessimboica de uso general para principia tes) se originé en el Dartmouth College a mediados de Ta década de 1960 bajo la direccién de John G. Ke: rmeny y Thomas B. Kurtz. Su objetivo era divefiar un Tenguaje que fuera sencillo de aprender y utilizar para programadores inexpertos a fin de resolver problemas be programacion simples. El lenguaje original se di {ef con tin niimero minim de estracturas de control yestructuras de datos. Los tres primeros earacteres de Gada linea forman una palabra clave unica, las replas 1908, Lengusjes de programacién de sintexs de todos 1s tipos de instracciones son lo més idénticas posible, y los nombroe de variables 2on Cortos. Estos factores hacen del BASIC fécil de usar. Las versiones originales del BASIC eran minimas en naturaleza y estaban diseadas como primer lenguaje para estudiantes. Después de que hubiesen dominado e1BASIC, utllzerian otros lengusjes de computadora, Principalmente cl FORTRAN, para product: progra Inas mds répidos y efcentes. En lt figura 58-13 se muestra el programa ordenador de burbuj en lengus- ie BASIC. Cada instruccidn comienza con un mimero de linea cen orden ascendent. El primer elemento que est des- [ues del nimero de linces es la palabra clave, que eo Pecifca el tipo de orden. La, primera linea tiene la palabra cave REM, que espseitica que esta linea es un omentario no sentiene ninguna orden. La instruc {:6n DIM especitica que el ares unidimensional mado A (que se conoce como lista en el BASIC), tiene 530 elementos. ET BASIC tambien tiene aucglas bi Gimensionales denominados. tabla. La. instrucsion READ toma el siguiente ndmero disponible del érea de datos lo almacena en a variable N (igual a8). El frea_de datos. est defnida por ing instucciones DATA, que especiican un conjunto de nimeros or ‘denado por almacenaren el drea de datos Interna. Los nimeroe se almarenan en el orden on qe se teciean todos los mimeros de a instruccién DATA con la ‘meracion mas baja guran antes de cualquier numero fn Ta signente instrveeign DATA. de nomeracisn i fetior. Las instrucciones FOR y NEXT especifican que Jas instracciones que estan entte ells se ejecutaran un rimero de veces especificad, y el contador de lot (13 K) seincrementar en uno cada vez que se recocra él.aclo. La istruccion IF prueba lacondicin expec ficada [zee A(K) menor o igual que A(K + 1)?) yes verdadera, el contol se transfete al nimero de inea 140 (salt a instrucci6n para intereambiar los ni- smeros) La inetrucoign LET asigna ol valor dena ex presion artmétca a la variable mencionada a la i2- Quietde del simbolo “=". Las instrucciones MAT se Uilzan para efectuar oporocioncs matrciales, 3 dei, ‘operaciones con una lista o tabla completa. La instruc ion MAT READ hace que los siguientes N (igual 38) Yalores en el érca de datos se. almacenca en. lon elementos del 1 al § de lista A [A(1) e545, AQ) 68 236..., AG) es 442) La instruccién MAT PRINT imprime todos los elementos Je A a lus que se haya asianado un valor Pascal, El Pascal fue disefiado y desarvollsdo por Niklaus Wirth, Se encuentra en la familia de lenguajes del Algol eincluye un vasto conjunto de estructuras de datos y posiblidades de construcciin de estructuras dd datos. En 1968 se produjo una version preliminar. v la versign esténdar se definio en 1974 en el Pascal User Manual und Report, EUTEEE Cowputes Stawdaiss Committee también ha publicado una norma: EI lenguaje Pascal se diselé principalmente como lenguaje de ensenanza. Como tal, contiene earacteris- tieas que aceptan sin dificnltad téenieat de progea- ‘macién estructurada, tales como la modularizacion y 1 REM OADENAR UNA LISTA DE NUMEROS UUTIIZANDO EL METODO OE LA BURBUIA 29 DIMA) 5 REM LEER EL NUMERO DE VALORES (HASTA 50) POR ORDENAR 40 EM Y'LOS VALORES DE LA LISTA DE DATOS INTERNA 50 READ N. 8) MAT READ A(N) 52 REM EJECUTAA EL ORDENAMIENTO NE RURRILIA ENLAUSTAA wo reno 9 FORI= TON 2p ea < mo UerT= Al) 32 LEAD = A+) Eras eT ya urs fo next $3 es = 1 THEN 90 170 MAT PRINT A 30) Daras 18). DATA 385, 236, 0,67, ~875, 90, -07, 442 200 END ) THEN 160 ip. S613. Fropiania vnlenalor Ue tutbyjs et BASIC. el disetio descendente. Entre éstas se inchnyen sa ti- pificaciOn considerable, limitaciones sobre el campo de accion de variables y subprogramas, estructuras de control y de datos versriles, y subprogramas que #2 pueden llamar en forma recursva. Estas earacteristicas Yel hecho de que el Pascal es coneiso a pesar de ser il de aprender y utilizar, constituyen sus ventajas més importantes. El lenguaje Pascal gané la acep- ‘acon mmediata en la comunidad académica, vel éxito del método de programacién estructurada ha contri ‘buido asimismo a su ereciente popularidad en los lu- ares de trabajo. ‘La estructura bisica de un programa aterito en Pas- cal consta de una seccidn de declaracién seguida de ‘un bloque de instrucciones de accién que conforman el algoritino apropiado, La eeccién de decleraciSn ee ‘donde se detinen y teclean constantes,tipos de datos {efinidos por el usuario, variables y esirueruras de da- toe, y donde te colocan los eubprogramas definidos por el usuario, En Pascal existen dos tipos de subprogra- mas principales, las funciones y los procedimientos. Las funciones se utilzan como variables, pero. sus valores son determinados por la ejecucién del subpro- ‘grama, Los procedimientos se invocan por medio de tune instruesién eparte y tienen el efecto de susttair esa instrucci6n por el contexto del procedimiento. La estructura de los subprogramas es paralela a la de los programas principales. Cada subprograma tiene una seocion de declaracion en la que el programador puede Gefinir elementos locales a ese subprograma. La sec- iu de doclarasiou va seguida Ue wu logue de istcuc= ciones ejecutables que especifican las. acciones del subprograma. La entrada y valida se manejan mds & menudo en términas de “archives de texta, donde el archivo ex terno (por lo general una lectora de tarjetas, impresora Programacién FIRST LAST = 10 var A anagFIRST 1 AST) of intagr- 1 ioe const procecure pus ‘ar temp neo SWAPPED bol begin repeat ‘SWAPPED ° falta; (se supone que no 98 hicieron tercambioe} for = FIRST fo LAST ~ 1 do aq) > All+ then Degin(neoambian doe ‘oen} ‘emp '= Al Als A + 1 Ath tom SWAPPED = te (registrar que se eesti un btercanbi) oy unis na SWAPPED (uinkduyd el ordenamiento?) begin (programa pineal comienzs acu) ‘ordenaan) ross (Al ‘sb; lamar al procedimieno de oxderamionte) {or = FIRST 10 LAST 6o imprine a aeglo ordenaeo} wrtoin (A Fig. $614, Programa ordenador de burbuia en Pascal ‘0 terminal interactiva) es legible para el operador y las variables internas del programa son binarias de la com putadora. Los procedimientos integrados del lenguaye Pascal que realizan lac operaciones de VO ton read (lectura) y write (escritura), con variaciones readin y writen, que se leen al final de una linea de entrada y cseriben toda une linea de sada, incluso el regreso de carro, respectivamente. El programa ordenador de burbuja escrito en Pascal se muestra en Is figura 58-14 Las instructiones se separan con el signo de punto y coma, En una linea puede haber més Ge una instruc sida, yuna instruccin se puede extender varias lincas, Todas las variables deben declararse, y es necesario especificar sus tipos de datos, Un concepto importante feel del eaupu de avcidu, El vempy de accion de un clemento de un programa es el médulo en el cual se Gefine, y todos los médulos textualmente contenidos en el, No estd a la vista” de los elementos del prograe ‘a que ln incluyen textualmente. Ast, en este ejemplo, como el arreglo A se declara en el programa principal, ‘campo de accion ineiuye el procedimlento “burbu- ja? y las referencias Ana ranean problemas, dé modo que no es necesrio declararla abi. Sucederia lo ‘mismo con fa variable 1 del programa principal, salvo para la declaracin de Ten ol procedimiento, Esto ere ‘tra variable, que es local a a “burbuja"y evita que se hhaga referencia al valor del programa principal. Elre- sultado ton dos variables’ distintas con el mismo nombre, ‘Dos de las caracteristicas mas importantes del Pascal que no se utiizaron en el ejemplo anterior son los re. gistros y los apuntadores'® Reglore. La circus dl rapstco puede sont dears un extension del concepto de pn arego, don te as entradas pueden sr de distinct tips. Las en trods ce eter poral nombre del vit, el mom tre dea ena e separa por un punto #0 pore nimero de postion, Conidreee fepsto que se de Enc'cn ln igura S018. Sis une varble wig sole asia el tipo paecord, entonces wit parno¥ wif fuprice se retieren al numero de patte (pez) ¥ fre Apuntador. Es una variable que hace referencia (0 ‘apunta) 2 una lovalidad del almacenamiento; su valor 8 a direccién de esa localidad. Para crear un apun- tador, debe declararse un tipo de datos definido por el usuariu vouy ww apuutador al elemento que ocupard el rea de almacenamiento. y después declarar varia- bles de ese tipo. Para asignar valores a la variable apuntadora, sé asignan localidades de alaeenanieuto templeando el procedimiento estindar new (nuevo) con [a variable como argumento. Por ejemplo, para el ac- ceso a registtos de partes (plezas) como se han detin- fo, por media de amuntadares y no par nombres, se uusan las declaraciones que se ilustran en la figura D816, Despues las instrucciones new (widget) y new (gizmo) erean dos localidades de almacenamienta que contendrén la informacin sobre aquellas partes y co- Tcaran 1s direcciones en widget ¥ gizmo. Las cons- trucsiones widget". parinoy gitmo® price se refieren al iimero de parte de widget y al precio de gizmo. C. Bete os un Lenguaje de programacién de uso ge- neral creado originalmente por Dennis Ritchie para la PDP-II de DEC, que corre (ejecuta) el sistema opera: tivo UNIX*. EI C no esté ueto a ningin sistema par- ticular. Sin embargo, existen compiladores para otras maquinas, grandes y pequefias. El lenguaje tiene sus brigoncs on el lenguaje BCPL, por medio de un len guaje intermedio llamado B (que se produjo en 1970 para el primer sistema UNIX, que corris en la PDP-7) Tanto cl BCPL como el B son lenguajcs “sin tipos”, donde el unico tipo de datos s la palabra de la méqui- ra (de modo muy parecido a como ocurre en un len: juaje easamblador © de méquina). Sin embargo, cl Tenguaje C es un lenguaie de tips (0 “tipificado”), donde los objetos de datos fundamentales son carac: teres, eutetus y auicius de punto Motante. Pero no es considerablemente tpificado (en el sentido de Pascal y ‘Ada): por lo general es muy sencillo realizar la conver- ‘TTININ es une marca repitade de Bell Laboratories, 1910 sin de un tipo de dates a otro, aunque el C no permite In conversign de todos los pes a todos los ots Uipos de datos. C también tiene recursos para crear tipos de ympuestos” a través del uso de apuntadores, arregls, esuiuctutes y fusviones. Pate dela Qexibi lidad del Tengugje la demuestra el hecho de que. @ pesar de que es un lenguseestructurado en Blogues. lt fhayot patte Ue sseime operative UNI, el comple Iador C'mismo y la mayor parte de Jos otros programas de aplicaciones de UNIX se escriben en C ELC e un lenguaje relaivamente de bajo nivel; en ¢l sentido de que maneja muchos de Tas mis pox Ge objetos que el lenguaje ensamblador (caacteres, nmetosy dreccones). EI C realla operaciones que funcionan dizectamente cnn estos tipo He datos No rmaneja operaciones de tipos de datos compuesto, como cadenas de caracteres,listasy arteglos comple: toe, mings estas operaciones son relatvamente fells de conjuntar a partir de las operaciones més simples gue se aeeptan. EI mismo no iene ningun recurso de asignacién de almacenamiento que no sea la deca racionestética y la capacidad de declarar variables “Io- ¢ales” en funciones, aungue en la mayor parte Ge las implementaciones so proporciona la azignasisn de al macenamiento dindraica. La entrada y Ta salida son realizadas por medio de funciones defiidas por lam plementaciony no por istrusiones de lengusje. EI ho cuenta con consructos complejo de flujo de con- {tol (como corrutinas operaciones en paralelo), sino folamente con constructos dieston como prucbes, st élos,aprupamientosy subprogramas. ‘Las Instrucciones del lenguaje Cse terminan con un punto y coma (en contratte gon lo que ocurre en el Pascal, donde las instrucciones se separan con puntos y comas). En términos de estruturas Je contol el C proporcionainstrucciones de sepeticiou con la prueba de contol al principio for. whl) y al final (do): 0- made decisiones i); ylaseleccién de unelemento entre "un conjunto de posibiesvasus(asis)”- Las formas Ue estas instrcciones se muestra en la figura 58-17 El termino "stmt" de esta figura es una insruccion ai euayuiera uel Cy “expr” y “eonuiion” som ex presiones por evaluar. Una instruccion block. que es ln conjunto de una 6 més instrucciones indiviusles eaerraday entre aves ("( )", que agrupan opers- lores similares a bevin y end de Pascal), pmede ni zarse en lugar de una sola istrucion siempre que se deseeejecutar mas de una insrucion (com eh omte ido de wn ciel, por ejempla)."Cace select” es Ia especficacin de un valor constant yuna sere de ins tmlcciones del por ejeeutar, como puede observarse fn ta fig 3-18 pan = ecard fame "packed array [19] of chat end Tig. 848. Decaracones de restos en Pascal Lengusies de proaramacién ‘ype item = “node; (les voriabies de este Spo apunan & elementos de po nod} var widget, gizmo : tem; Fig. S816. Declaraconee de variables de spuntador en Pascal Tor (exprl: expe; expr3) while (conaion) ao stmt lle (conaiiony it (condition) che sim site (expr) i case selector 1 case telector 2 Fig, $817. Instruccones de control en lengua C. ease const stmt; Fig. S618, Selecor de casos en lenguafeC. EIC tiene capacidad de definicign de macroinstruc dunes mediante la inuruccion # define, Esta instuce cin tiene la sintaxis que sigue: # define Identifier definicion string donde “identifier” es un identficador legal cualquiera el C y “definition sting” es le cadena de caracteres ‘que se sustiniré por “identifier” en cualquier parte en {que ocurra (desde el punto de la definicion en adelan- te) del programa. La forma mas simple de detinicion de macroinstrucciones e¢ algo como: # detine TRUE 1 que tiene el efecto de asociar el nombre TRUE (verda: dero) con el valor 1 (esto se parece mucho a la carac- teritica sonst dal Pascal). Es posible definir macroins trucciones que tomen argumentos, como en: 1911

También podría gustarte