Anar al contingut

COBOL

De L'Enciclopèdia, la wikipedia en valencià
COBOL
COBOL programa informàtic

El llenguage

COBOL (acrònim de COmmon Business-Oriented Language, Llenguage Comú Orientat a Negocis) va ser creat en l'any 1959 en l'objectiu de crear un llenguage de programació universal que poguera ser usat en qualsevol ordenador i que estiguera orientat principalment als negocis, és dir, a la cridada informàtica de gestió. COBOL s'utilisa principalment en sistemes comercials, financers i administratius per a empreses i governs. COBOL encara s'usa àmpliament en aplicacions implementades en ordenadors centrals, com a treballs de lot i processament de transaccions a gran escala. No obstant, per la seua popularitat decreixent i al retir dels programadors COBOL experimentats, els programes s'estan migrando a noves plataformes, reescrivint-los en llenguages moderns o reemplaçant-los en paquets de software.[1] La major part de la programació en COBOL ara és purament per a mantindre les aplicacions existents; no obstant, moltes institucions financeres grans encara estaven desenrollant nous sistemes en COBOL fins a 2006.[2]

Història

[editar | editar còdic]

El 8 d'abril de 1959, Mary K. Hawes, una programadora que treballava per a Burroughs Corporation, va organisar una reunió de representants d'acadèmia, usuaris d'ordenadors i fabricants en l'Universitat de Pennsilvània per a organisar una reunió formal sobre llenguages comuns de negocis. Alguns dels representants varen incloure a Grace Hopper (inventora del llenguage de procés basat en l'anglés FLOW-MATIC), Jean Sammet i Saul Gorn.[3]

En la creació d'este llenguage va participar la comissió CODASYL, composta per fabricants d'ordenadors, usuaris i el Departament de Defensa d'Estats Units en maig de 1959. La definició del llenguage es va completar en poc més de sis mesos, sent aprovada per la comissió en giner de 1960. El llenguage COBOL va ser dissenyat inspirant-se en el llenguage Flow-Matic de l'oficial Grace Hopper i l'IBM COMTRAN de Bob Bemer, ya que abdós varen formar part de la comissió.

Gràcies a l'ajuda dels usuaris COBOL va evolucionar ràpidament i va ser revisat de 1961 a 1965 per a afegir-li noves funcionalitats. En 1968 va eixir la primera versió ANSI del llenguage, sent revisada posteriorment en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliat en 1989 en funcions matemàtiques, finalisant l'estàndart actual més usat, conegut com COBOL-ANSI), i en 2002 (COBOL ANS-2002).

L'últim estàndart és el COBOL 2014 que entre unes atres, inclou una nova característica que permet gestió dinàmica de la memòria (OCCURS DYNAMIC).

Existix una versió IBM Enterprise Cobol, actualisada regularment i llançada en 1991, usada en sistemes Host (Mainframe) baix z/OS.


Per a Windows i Linux, hi ha varis compiladors i IDE-s que existixen des de fa temps i se seguixen modernisant.

  • MicroFocus Visual Object COBOL For Windows 95 (el IDE més antic permetent crear GUI-s, soporta WinAPI)
  • MicroFocus NetExpress (el IDE ya modern permetent interactuar en Java, EJB, C. També OO COBOL (orientat a objectes))
  • MicroFocus Visual COBOL per a Visual Studio i Eclipse (el IDE actual, en WebServices)
  • RM/COBOL, ara propietat de Microfocus, originalment de la companyia Ryan & McFarland, els qui varen desenrollar el compilador i el runtime
  • Fujitsu COBOL
  • Fujitsu NetCOBOL for Windows
  • Fujitsu NetCOBOL for .NET
  • Fujitsu PowerCOBOL (forma part del paquet NetCOBOL for Windows, creant aplicacions GUI basades en controls ActiveX, soporta WinAPI).

També actualment existixen:

  • GnuCOBOL (antic Open COBOL, que és Open Source)
  • Raincode COBOL
  • COBOL-IT

Característiques

[editar | editar còdic]
  • COBOL va ser dissenyat per a escriure programes autodocumentados, per mig de separació en divisions per a la declaració de variables dels procediments i una divisió per a dur un registre de quí va solicitar el programa i quí ho varen escriure. A pesar dels seus objectius l'estructura que tenia en el seu inici era insuficient per a l'estructura modular que requerixen els sistemes dels negocis corporatius.
  • Els seus tipos de senyes estaven pensats per a manejar archius ordenats, per lo que conta en estructures per a registres i variants i la declaració de claus per als archius indexats.
  • Tipos de senyes atòmiques que es definixen per mig de la paraula clau PICTURE es poden definir camps estructurats. Lo que permet definir números en els que s'evita errors de grosseig en els càlculs que es produïxen en convertir els números a binari i que són inacceptables en temes comercials, COBOL pot amprar i ampra per defecte números en base dèu.
  • Per a facilitar la creació de programes en COBOL, la sintaxis del mateix va ser creada de manera que anara pareguda a l'idioma anglés, evitant l'us de símbols que es varen impondre en llenguages de programació posteriors.

Pese a açò, al començament dels huitanta es va ser quedant antiquat respecte als nous paradigmes de programació i als llenguages que els implementaven. En la revisió de 1985 es va solucionar, incorporant a COBOL variables locals, recursivitat, reserva de memòria dinàmica i programació estructurada.

En la revisió de 2002 se li va afegir orientació a objectes, encara que des de la revisió de 1974 es podia crear un entorn de treball similar a l'orientació a objectes, i un método de generació de pantalles gràfiques estandardisat.

Abans de l'inclusió de les noves característiques en l'estàndart oficial, molts fabricants de compiladors les afegien de forma no estàndar. En l'actualitat este procés s'està veent en l'integració de COBOL en Internet. Existixen varis compiladors que permeten amprar COBOL com llenguage de scripting i de servici web. També existixen compiladors que permeten generar còdic COBOL per a la plataforma .NET i EJB. L'estructura d'un Programa en Cobol es compon de 4 Divisions.

  1. IDENTIFICATION DIVISION: És l'identificador del programa, du les senyes d'informació, nom d'autor, data de compilació etc.
  2. ENVIRONMENT DIVISION: Indica els recursos de hardware a on s'eixecuta el programa, aixina com l'assignació d'eixida d'informació per mijos de comunicació.
  3. DATA DIVISION: En esta divisió s'establixen les variables que seran utilisades pel sistema i la declaració d'archius.
  1. PROCEDURE DIVISION: Com el seu nom ho indica, s'eixecuten les instruccions codificades.
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    HOLAMUNDO.
       AUTHOR.        ANONIMO.
       
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.   RMCOBOL-85.
       OBJECT-COMPUTER.   RMCOBOL-85.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

       DATA DIVISION.
       FILE SECTION.

       WORKING-STORAGE SECTION.     
             
       PROCEDURE DIVISION.
       
           DISPLAY 'Hola món'

           GOBACK

           ..

.

Ocupació

[editar | editar còdic]

Pese a que moltes persones creuen que el llenguage COBOL està en desús, la realitat és que casi tots els sistemes que requerixen gran capacitat de processament per lots (Batch), tant les entitats bancàries com atres grans empreses en sistemes mainframes utilisen COBOL. Açò permet garantisar la compatibilitat dels sistemes antics en els més moderns, aixina com tindre la seguritat de que el llenguage és perfectament estable i provat. Segons un informe de Gartner Group de 2005, el 75% de les senyes generades per negocis són processats per programes creats en COBOL, i en un atre informe de 1997 estima que el 80% dels 300.000 millons de llínees de còdic existents estan creats en COBOL, escrivint-se 5000 millons de llínees noves de COBOL cada any. En tot això, hui per hui, la programació en COBOL és un dels negocis més rendables del món de l'informàtica. En el restant d'aplicacions el COBOL ha caigut en desús, reemplaçat per llenguages més moderns o versàtils.

Recepció

[editar | editar còdic]

Falta d'estructura

[editar | editar còdic]

En la década de 1970, l'adopció del paradigma de programació estructurada s'estava generalisant cada volta més. Edsger Dijkstra, un preeminent informàtic, va escriure una carta a l'editor de Comunicacions de la ACM, publicada en 1975 titulada «¿Cóm diem veritats que podrien adolir?», en la que va ser crític en COBOL i varis atres llenguages contemporàneus; remarcant que «l'us de COBOL paralisa la ment».[4] En una discrepància publicada als comentaris de Dijkstra, el científic informàtic Howard E. Tompkins va afirmar que el COBOL no estructurat tendia a ser «escrit per programadors que mai han tingut el benefici de COBOL estructurat ben ensenyat», argumentant que el problema era principalment un d'entrenament.[5]


Una de les causes del còdic espagueti va ser la declaració Plantilla:Còdic. Els intents d'eliminar Plantilla:Còdics del còdic COBOL, no obstant, va resultar en programes intrincados i calitat de còdic reduïda.[6] Plantilla:Còdics varen ser reemplaçats en gran part per les declaracions i procediments Plantilla:Còdic, que va promoure la programació modular [6] i va donar fàcil accés a potents instalacions de bucle. No obstant, Plantilla:Còdic podria usar-se solament en procediments per a que els cossos dels bucles no s'ubicaren a on es varen usar, lo que dificultava la comprensió dels programes.[7]

Els programes COBOL eren famosos per ser monolítics i carir de modularizaació.[8] El còdic COBOL solament podia modularizarse a través de procediments, que varen resultar ser inadequats per a sistemes grans. Era impossible restringir l'accés a les senyes, lo que significa que un procediment podia accedir i modificar qualsevol element de senyes. Ademés, no hi havia forma de passar paràmetros a un procediment, una omissió que Jean Sammet va considerar com el major error del comité.[9] Una atra complicació procedia de la capacitat de Plantilla:Còdic una seqüència específica de procediments. Açò significava que el control podia botar i retornar de qualsevol procediment, creant un fluix de control intrincado i permetent que un programador trencara la regla entrada única, eixida única.[10]

Esta situació va millorar a mida que COBOL va adoptar més característiques. COBOL-74 va agregar subprogramas, brindant als programadors la capacitat de controlar les senyes als que podia accedir cada part del programa. COBOL-85 després va agregar subprogramas anidados, lo que va permetre als programadors ocultar subprogramas.[11] Un major control sobre les senyes i el còdic va aplegar en 2002 quan es varen incloure la programació orientada a objectes, les funcions definides per l'usuari i els tipos de senyes definides per l'usuari.

No obstant, gran part del software COBOL heretat important utilisa còdic no estructurat, que s'ha tornat impossible de mantindre. Pot ser massa arriscat i costós modificar inclús una simple secció de còdic, ya que pot usar-se des de llocs desconeguts de formes desconegudes.[12]

Problemes de compatibilitat

[editar | editar còdic]

COBOL estava destinat a ser un llenguage «comú» altament portàtil. No obstant, per a 2001, s'havien creat al voltant de 300 dialectes.[13] Una font de dialectes era el propi estàndart: l'estàndart de 1974 estava compost per un núcleu obligatori i onze mòduls funcionals, cada u en dos o tres nivells de soport. Açò va permetre 104 976 variants oficials.[14]


COBOL-85 no era totalment compatible en versions anteriors i el seu desenroll va ser controvertit. Joseph T. Brophy, el CIO de Travellers Insurance, va encapçalar un esforç per a informar als usuaris de COBOL sobre els alts costs de reprogramación d'implementar el nou estàndart.[15] Com a resultat, el comité ANSI COBOL va rebre més de 2200 cartes del públic, en la seua majoria negatives, que solicitaven al comité que fera canvis. Per un atre costat, es pensava que la conversió a COBOL-85 aumentaria la productivitat en anys futurs, justificant aixina els costs de conversió.[16]

Sintaxis detallada

[editar | editar còdic]

La sintaxis de COBOL a sovint ha segut criticada per la seua verbositat. Els defensors diuen que açò tenia l'intenció de fer el còdic autodocumentado, facilitant el manteniment del programa.[17] COBOL també estava destinat a ser fàcil de deprendre i usar per als programadors,[18] sense deixar de ser llegible per al personal no tècnic, com els gerents.[19][20][21][22] El desig de legibilidad va conduir a l'us d'elements estructurals i sintàctics similars a l'anglés, com a substantius, verps, clàusules, oracions, seccions i divisions. No obstant, en 1984, els mantenedores dels programes COBOL lluitaven per bregar en el còdic «incomprensible».[21] i els principals canvis en COBOL-85 estaven allí per a ajudar a facilitar el manteniment.[23]

Jean Sammet, membre del comité de curt alcanç, va senyalar que «es va fer un chicotet intent per atendre al programador professional, de fet, les persones el principal interés de les quals és la programació tendixen a estar molt descontentes en COBOL», lo que va atribuir a la sintaxis detallada de COBOL.[24]

Aïllament de la comunitat informàtica

[editar | editar còdic]

La comunitat COBOL sempre ha estat aïllada de la comunitat informàtica. Cap informàtic acadèmic va participar en el disseny de COBOL: tots els membres del comité procedien del comerç o el govern. Els informàtics de l'época estaven més interessats en camps com l'anàlisis numèric, la física i la programació de sistemes que en els problemes comercials de processament d'archius que abordava el desenroll de COBOL.[25] Jean Sammet va atribuir l'impopularitat de COBOL a una «reacció snob» inicial per la seua falta d'elegància, la falta de científics informàtics influents que participaren en el procés de disseny i el despit pel processament de senyes comercials.[26] L'especificació COBOL va usar una «notació» única, o metallenguage, per a definir la seua sintaxis en lloc de la nova forma Backus-Naur que el comité no coneixia. Açò va resultar en crítiques «severes».[27][28][29]



Més tart, COBOL va sofrir una escassea de material que ho cobrira; els llibres introductoris varen tardar fins a 1963 en aparéixer (en Richard D. Irwin publicant un llibre de text universitari sobre COBOL en 1966).[30] Per a 1985, hi havia el doble de llibres sobre FORTRAN i quatre voltes més sobre BASIC que sobre COBOL en la Biblioteca del Congrés.[31] Els professors universitaris ensenyaven llenguages i tècniques més modernes i d'última generació en lloc de COBOL, que es dia que tenia una naturalea de «escola de comerç».[32] Donald Nelson, president del comité CODASYL COBOL, va dir en 1984 que «els acadèmics ... odien COBOL» i que els graduats en informàtica «tenien “odi COBOL” en ells».[33]

A mitan de la década de 1980, també va haver una condescendencia significativa cap a COBOL en la comunitat empresarial per part dels usuaris d'atres llenguages, per eixemple FORTRAN o ensamblador, lo que implica que COBOL podria usar-se solament per a problemes no-desafiants.[34]

En 2003, COBOL figurava en el 80% dels plans d'estudi de sistemes d'informació en els Estats Units, la mateixa proporció que C++ i Java.[35] Dèu anys despuix, una enquesta realisada per Micro Focus va trobar que el 20 % dels acadèmics universitaris pensaven que COBOL estava desactualizado o mort i que el 55 % creïa que els seus estudiants pensaven que COBOL estava desactualizado o mort. La mateixa enquesta també va trobar que solament el 25 % dels acadèmics tenien programació COBOL en el seu pla d'estudis, encara que el 60 % va pensar que deurien ensenyar-la.[36]

Preocupacions sobre el procés de disseny

[editar | editar còdic]

S'han plantejat dubtes sobre la competència del comité de normes. El membre del comité a curt determini, Howard Bromberg, va dir que hi havia «poc control» sobre el procés de desenroll i que estava «plagat per la discontinuidad del personal i... la falta de talent».[37] Jean Sammet i Jerome Garfunkel també varen senyalar que els canvis introduïts en una revisió de l'estàndart es revertirien en la següent, degut tant als canvis en quí estava en el comité de l'estàndart com a l'evidència objectiva.[38]


Els estàndarts COBOL han sofrit repetidament retarts: COBOL-85 va aplegar cinc anys més vesprada de lo esperat, COBOL 2002 es va retardar cinc anys,[39] i COBOL 2014 es va retardar 6 anys[40][41] Per a combatre els retarts, el comité d'estàndarts va permetre la creació d'apèndixs opcionals que agregarien característiques més ràpidament que esperant la pròxima revisió de l'estàndart. No obstant, alguns membres del comité varen expressar la seua preocupació per les incompatibilitats entre les implementacions i les freqüents modificacions de l'estàndart.[42]

Influències en atres llenguages

[editar | editar còdic]

Les estructures de senyes de COBOL varen influir en els llenguages de programació posteriors. La seua estructura de registres i archius va influir en PL/I i Pascal, i la clàusula REDEFINES va ser un predecessor dels registres variants de Pascal. Les definicions explícites d'estructures d'archius varen precedir al desenroll de sistemes d'administració de bases de senyes i les senyes agregades varen ser un alvanç significatiu sobre les matrius de Fortran.[31] Les declaracions de senyes de PICTURE es varen incorporar a PL/I, en canvis menors.

La facilitat de COBOL en Plantilla:Còdic, encara que es considera «primitiu»,[43] va influir en el desenroll de directives include.[31]

L'enfocament en la portabilitat i l'estandardisació va significar que els programes escrits en COBOL pogueren ser portàtils i va facilitar la difusió del llenguage a una àmplia varietat de plataformes de hardware i sistemes operatius.[44] Ademés, l'estructura de divisió ben definida restringix la definició de referències externes a la Divisió d'Entorn, lo que simplifica els canvis de plataforma en particular.[45]

En els mijos

[editar | editar còdic]

Plantilla:Curiositats

  • En el còdic que es veu de la programació del cyborg de la película The Terminator (1984), algunes de les sentències estan escrites en Cobol.[46]

Referències

[editar | editar còdic]
  1. Mitchell, Robert L.. “Brain drain: Where Cobol systems go from here”. Computerworld.
  2. Mitchell, Robert L.. “Cobol: Not Dead Yet”. Computerworld.
  3. «MARY HAWES: LA LEGENDARIA PROGRAMADORA QUE CREÓ EL LENGUAJE COBOL» (en és-ar). MUYCRITICO.COM.AR. Consultat el 2024-12-04.
  4. Dijkstra, Edsger W. (1975-06-18). «How do we tell truths that might hurt?». University of Texas at Austin.
  5. “In defense of teaching structured COBOL as computer science” (1983). ACM SIGPLAN Notices 18 (4): 86–94. doi:10.1145/948176.948186.
  6. 6,0 6,1 Riehle, 1992, p. 125.
  7. Shneiderman, 1985, pp. 349–350.
  8. Coughlan, Michael. Beginning COBOL for Programmers, Apress, p. 4. ISBN 978-1430262534.
  9. Sammet, 1978b, p. 258.
  10. Riehle, 1992, p. 126.
  11. Riehle, 1992, p. 127.
  12. «COBOL and Legacy Code as a Systemic Risk | naked capitalism» (en en-us).
  13. Cracking the 500-language problem” . IEEE Software 18 (6). doi:10.1109/52.965809.
  14. “Towards more portable COBOL” . The Computer Journal 22 (4): 290. doi:10.1093/comjnl/22.4.290.
  15. Garfunkel, 1987, p. 11.
  16. Garfunkel, 1987, p. 15.
  17. Brown, 1976, p. 53.
  18. CODASYL, 1969, § II.1.1.
  19. Shneiderman, 1985, p. 350.
  20. Sammet, 1961, p. 381.
  21. 21,0 21,1 Conner, 1984, p. ID/10.
  22. Marcotty, 1978a, p. 263.
  23. Expert addresses Cobol 85 standard” . Computerworld 19 (37): 41, 48.
  24. Conner, 1984, p. ID/14.
  25. Sammet, 1961, p. 380.
  26. Marcotty, 1978a, p. 266.
  27. Sammet, 1978b, p. 255.
  28. Shneiderman, 1985, pp. 348–349.
  29. Bemer, 1971, p. 133.
  30. «COBOL Logic and Programming, third edition 1974».
  31. 31,0 31,1 31,2 Shneiderman, 1985, p. 349.
  32. Shneiderman, 1985, p. 351.
  33. An interview: Cobol defendre” . Computerworld 18 (37): ID/29–ID/32.
  34. Programming Languages: Design and Implementation, 2nd edició, Englewood Cliffs, N.J. : Prentice Hall. ISBN 0136780121.
  35. Carr y Kizior, 2003, p. 13.
  36. «Acadèmia needs more support to tackle the IT skills gap», Micro Focus.
  37. Beyer, 2009, p. 301.
  38. “Summary of Changes in COBOL, 1960–1985” . Annals of the History of Computing 7 (4): 342. doi:10.1109/MAHC.1985.10033.
  39. «COBOL '97: A Status Report». Dr. Dobb's Journal.
  40. «COBOL Standards». Micro Focus.
  41. «Resolutions from WG4 meeting 24 – June 26–28, 2003 Las Vegas, Nevada, USA» (doc). «a June 2008 revisió of the COBOL standard»
  42. Babcock, Charles. “Cobol standard add-ons flayed”. Computerworld 20 (28): 1, 12.
  43. Marcotty, 1978b, p. 274.
  44. Açò es pot vore en:
    • «Visual COBOL». IBM PartnerWorld. IBM. «Micro Focus Visual COBOL delivers the next generation of COBOL development and deployment for Linux x86-64, Linux for System z, AIX, HP/UX, Solaris, and Windows.»
    • «COBOL Compilers family». ibm.com. IBM.
  45. Coughlan, Michael (2002). «Introduction to COBOL».
  46. «The Terminator. Trivia (en IMDb)» (en anglés). Consultat el 10 de juliol de 2011.

Migració de Cobol MainFrame

Bibliografia

[editar | editar còdic]
  • (Link goes to draft N 0147)

Vore també

[editar | editar còdic]

Enllaços externs

[editar | editar còdic]

Commons