Baixe o app para aproveitar ainda mais
Prévia do material em texto
07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 1/8 COBOL Paradigma procedural, Orientação a objeto Surgido em 1959 Última versão COBOL2002 Criado por Grace Hopper, William Selden, Gertrude Tierney, Howard Bromberg, Howard Discount, Vernon Reeves, Jean E. Sammet. Estilo de tipagem: Forte e estática Dialetos: HP3000 COBOL/II, COBOL/2, IBM OS/VS COBOL, IBM COBOL/II, IBM COBOL SAA, IBM Enterprise COBOL, IBM COBOL/400, IBM ILE COBOL, Unix COBOL X/Open, Micro Focus COBOL, Microsoft COBOL, Ryan McFarland RM/COBOL, Ryan McFarland RM/COBOL-85, DOSVS COBOL, UNIVAC COBOL, Realia COBOL, Fujitsu COBOL, ICL COBOL, ACUCOBOL-GT, COBOL-IT, DEC COBOL-10, DEC VAX COBOL, Wang VS COBOL, Visual COBOL, Tandem (NonStop) COBOL85, Tandem (NonStop) SCOBOL (um variante de COBOL74 para criar consolas em terminais baseados em texto) Influenciada por FLOW-MATIC, COMTRAN, FACT Influenciou PL/I, CobolScript, ABAP COBOL Origem: Wikipédia, a enciclopédia livre. COBOL (sigla de COmmon Business Oriented Language) - Linguagem Comum Orientada para os Negócios é uma linguagem de programação orientada para o processamento de banco de dados comerciais.[1] É a linguagem de programação inteira mais usada, produto do Departamento de Defesa norte-americano sob a direção da contra-almirante Grace Murray Hopper.[2] As especificações do COBOL 2002 incluem suporte à programação orientada a objetos e outras características das linguagens modernas.[3] História e especificação ANS COBOL 1968 COBOL 1974 COBOL 1985 COBOL 2002 e o COBOL orientado a objeto História de normas COBOL Legado Características Olá, mundo Olá, OS/360 cerca de 1972 Estrutura básica Área de codificação no COBOL Críticas e defesas Falta de estruturalismos Problemas de compatibilidade após normalização Sintaxe verbosa Outras defesas Referências Ver também Ligações externas O COBOL foi criado por um comitê de investigadores de várias instituições civis e governamentais durante o segundo semestre de 1959. As especificações eram em grande parte inspiradas na linguagem de programação FLOW-MATIC inventada pela Grace Hopper - referida como "a mãe da língua COBOL." A linguagem de programação da IBM COMTRAN inventada pelo Bob Bemer também foi utilizada, mas a especificação da FACT da Honeywell tinha sido Índice História e especificação 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 2/8 distribuída até tarde aos membros do comitê do processo, e teve relativamente pouco impacto. O uso corrente e estudo do FLOW-MATIC como a única linguagem do grupo de estudo que efetivamente tinha sido utilizada numa situação real, fez com que fosse bastante atractiva ao comitê.[4] Em 8 de abril de 1959, na CODASYL (Conference on Data Systems Language) destinada a usuários e pessoas da universidade, no centro de computação da Universidade da Pensilvânia, o Departamento de Defesa dos Estados Unidos, posteriormente, concordou em patrocinar e supervisionar as próximas atividades. A reunião presidida por Charles A. Phillips foi realizada no Pentágono em 28/29 de maio de 1959 (exatamente um ano após a reunião em Zurique do ALGOL 58), não foi decidido definir de três comissões: de curto, médio e longo alcance (a última nunca foi realmente formada). Foi o Comitê de Curto Prazo, presidido por Joseph Wegstein do National Bureau of Standards que durante os meses seguintes criou uma descrição da primeira versão do COBOL.[5] O comitê foi constituído por membros representantes de seis fabricantes de computadores e três órgãos governamentais, a saber: Burroughs Corporation, IBM, Minneapolis-Honeywell (Honeywell Labs), RCA, Sperry Rand, e Sylvania Electric Products, e a Força Aérea dos Estados Unidos, o David Taylor Model Basin e a Agência Nacional de Padrões (National Bureau of Standards ou NBS). Este comitê foi presidido por um membro do NBS. Um comitê de Médio Prazo e outro de Longo Prazo foram também propostos na reunião do Pentágono. Entretanto, embora tenha sido formado, o Comitê de Médio Prazo nunca chegou a funcionar; e o Comitê de Longo Prazo nem chegou a ser formado. Por fim, um subcomitê do Comitê de Curto Prazo desenvolveu as especificações da linguagem COBOL. Este subcomitê era formado por seis pessoas: William Selden e Gertrude Tierney da IBM Howard Bromberg e Howard Discount da RCA Vernon Reeves e Jean E. Sammet da Sylvania Electric Products[6] A decisão de usar o nome "COBOL" foi feita em uma reunião do comitê realizada em 18 de setembro de 1959. O subcomitê completou as especificações para o COBOL em dezembro de 1959. O primeiro compilador para COBOL foi posteriormente implementado em 1960 e em 6/7 de dezembro, essencialmente o mesmo programa COBOL funcionou em dois computadores diferentes, um computador RCA e uma Remington-Rand Univac, demonstrando que a compatibilidade pode ser alcançada.[7] Depois de 1959 o COBOL sofreu várias modificações e melhorias. Na tentativa de superar o problema da incompatibilidade entre diferentes versões de COBOL, o American National Standards Institute (ANSI) desenvolveu uma forma padrão de língua, em 1968, após o lançamento da versão COBOL-61 que se tornou a pedra angular para mais versões. Esta versão ficou conhecida como American National Standard (ANS) COBOL. Em 1974, a ANSI publicou uma versão revista da (ANS) COBOL, que continha uma série de recursos que não estavam na versão 1968.[7] Em 1985, a ANSI publicou ainda uma outra versão revista que tinha novas funcionalidades que não apareciam no padrão 1974, como construções de linguagem mais notavelmente estruturadas ("terminadores de escopo"), incluindo END-IF, END-PERFORM, END-READ, etc. ANS COBOL 1968 COBOL 1974 COBOL 1985 COBOL 2002 e o COBOL orientado a objeto 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 3/8 A linguagem continua a evoluir até hoje. No início de 1990, decidiu-se acrescentar a orientação a objetos na próxima revisão completa do COBOL. A estimativa inicial era ter esta revisão concluída em 1997 e um ISO CD (Committee Draft, rascunho do comitê) disponível até 1997. Alguns fornecedores (incluindo a Micro Focus, a Fujitsu, a Veryant e a IBM) introduziram a sintaxe orientada a objetos, com base nos rascunhos de 1997 ou outro da revisão completa. A versão no padrão ISO (adotado como um padrão ANSI por INCITS) foi aprovada e disponibilizada em 2002. Assim como a C++ e a Java, os compiladores COBOL estão disponíveis enquanto a linguagem se move em direção à padronização. A Fujitsu, a Micro Focus e a Raincode atualmente suportam os compiladores COBOL orientados a objetos visando o .NET.[8] O COBOL 2002 incluiu recursos além orientação a objetos, (mas não estão limitados a): Suporte a idiomas (incluindo, mas não limitado a suporte ao Unicode) Processamento baseado em Locale Funções amigáveis ao usuário CALL (e função) protótipos (para a verificação de parâmetro em tempo de compilação) Ponteiros e sintaxe para a obtenção/liberação de armazenagem Convenções de chamada de e para línguas não-COBOL, como C Suporte para execução em ambientes estruturas como .NET e Java (incluindo COBOL instanciado como Enterprise JavaBeans) Suporte a Bit e Bool Suporte a "True" (até esta melhoria, itens binários eram truncados (pela especificação de base-10) dentro da DATA DIVISION) Suporte a ponto flutuante Resultados aritméticos padrão (ou portáteis) Geração e parsing de XML As especificações aprovadas por todo o Comitê de Curto Prazo foram aprovadas pelo Comitê Executivo em 3 de janeiro de 1960, e enviadas para a gráfica do governo que editou e imprimiu essas especificações como COBOL 60. O American National Standards Institute (ANSI) produziu várias revisões do padrão COBOL,incluindo: COBOL-68 COBOL-74 COBOL-85 Intrinsic Functions Amendment - 1989 Corrections Amendment - 1991 Após as alterações de 1985 o padrão ANSI (que era adotado pela ISO), o desenvolvimento e a apropriação foi assumida pela ISO. As seguintes edições e TRs (Relatórios Técnicos) foram emitidas pelo padrão ISO (e adotados como ANSI): COBOL 2002 Finalizer Technical Report - 2003 Native XML syntax Technical Report - 2006 Bibliotecas de coleção de classes orientadas a objeto - aprovação pendente Desde 2002, o padrão ISO também está disponível para o público codificado como ISO / IEC 1989. O trabalho progride na próxima revisão integral da norma COBOL. A aprovação e disponibilidade era esperado primeiros em 2010. Para obter informações sobre esta revisão, ver o mais recente projeto desta revisão, ou para ver o que as outro trabalhos em progresso no padrão COBOL, consulte o site de normas do COBOL (http://www.cobolstand ard.info). História de normas COBOL 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 4/8 Programas em COBOL estão em uso globalmente em agências governamentais e militares além de empresas comerciais, e estão sendo executados em sistemas operacionais como o da IBM z/OS e z/VSE, as famílias POSIX (Unix / Linux, etc) e Windows da Microsoft, bem como Unisys OS 2200. Em 1997, o Gartner Group relatou que 80% dos negócios do mundo rodavam em COBOL com mais de 200 bilhões de linhas de código existentes e cerca de 5 bilhões de linhas de código novo por ano.[9] O COBOL teve como meta servir como uma linguagem de programação para negócios. Os programas para negócios não precisam de cálculos tão precisos como os encontrados em engenharia, assim o COBOL foi concebido basicamente com as características:[10] Acesso rápido a arquivos e bases de dados Atualização rápida de arquivos e bases de dados Geração de uma grande quantidade de informações Saída com um formato compreensível ao usuário O COBOL é geralmente a linguagem escolhida em cálculos financeiros por suportar aritmética inteira aplicada a números muito grandes (milhões, bilhões etc) ao mesmo tempo que é capaz de lidar com números muito pequenos como frações de centavos. Outra característica é a formatação,[11] classificação e geração de relatórios.[2] Um exemplo do programa "Olá, Mundo" em COBOL: IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Ola, mundo'. STOP RUN. Existem vários dialetos do COBOL. Alguns compiladores, por exemplo, permitem o uso de aspas duplas, além do padrão de aspas simples: DISPLAY "Hello, world". Em um IBM System/360 executando OS/360 MVT 21.8f, por volta de 1972, o teste Olá, Mundo teria levado cartões perfurados de 80 colunas, contendo o código-fonte semelhante a: //COBUCLG JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //HELOWRLD EXEC COBUCLG,PARM.COB='MAP,LIST,LET' //COB.SYSIN DD * 001 IDENTIFICATION DIVISION. 002 PROGRAM-ID. 'HELLO'. 003 ENVIRONMENT DIVISION. 004 CONFIGURATION SECTION. 005 SOURCE-COMPUTER. IBM-360. 006 OBJECT-COMPUTER. IBM-360. 0065 SPECIAL-NAMES. 0066 CONSOLE IS CNSL. 007 DATA DIVISION. 008 WORKING-STORAGE SECTION. 009 77 HELLO-CONST PIC X(12) VALUE 'HELLO, WORLD'. 075 PROCEDURE DIVISION. Legado Características Olá, mundo Olá, OS/360 cerca de 1972 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 5/8 090 000-DISPLAY. 100 DISPLAY HELLO-CONST UPON CNSL. 110 STOP RUN. //LKED.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR // DD DSNAME=SYS1.LINKLIB,DISP=SHR //GO.SYSPRINT DD SYSOUT=A // No COBOL há três tipos básicos de dados usados nas instruções:[11] Numérico (sinalizado ou não, com decimal ou inteiros) Alfanumérico Constantes figurativas O COBOL consiste basicamente em quatro divisões separadas:[12] IDENTIFICATION DIVISION A IDENTIFICATION DIVISION possui informações documentais, como nome do programa, quem o codificou e quando essa codificação foi realizada. ENVIRONMENT DIVISION A ENVIRONMENT DIVISION descreve o computador e os periféricos que serão utilizados pelo programa. DATA DIVISION A DATA DIVISION descreve os arquivos de entrada e saída que serão usadas pelo programa. Também define as áreas de trabalho e constantes necessárias para o processamento dos dados. PROCEDURE DIVISION A PROCEDURE DIVISION contém o código que irá manipular os dados descritos na DATA DIVISION. É nesta divisão que o desenvolvedor descreverá o algoritmo do programa. IDENTIFICATION DIVISION ENVIRONMENT DIVISION * CONFIGURATION SECTION * INPUT-OUTPUT SECTION DATA DIVISION * FILE SECTION * WORKING-STORAGE SECTION * LOCAL-STORAGE SECTION * LINKAGE SECTION * COMMUNICATION SECTION * REPORT SECTION * SCREEN SECTION PROCEDURE DIVISION Colunas Descrição 1 a 6 branco (será preenchido com a numeração COBOL) 7 (branco) LINHA DE CODIFICAÇÃO * (asterisco) linha de comentário - (hífen) continuação de literal não numérico 8 a 72 instruções do COBOL iniciando na coluna 8 Estrutura básica Área de codificação no COBOL Críticas e defesas 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 6/8 Em sua carta a um editor em 1975, intitulada "Como é que vamos dizer verdades que podem machucar?" que era crítica a várias linguagens de programação contemporâneas como o COBOL, o cientista da computação e vencedor do Prêmio Turing, Edsger Dijkstra comentou que "O uso de COBOL mutila a mente, o seu ensino deve, portanto, ser considerado como uma infração penal".[13] Em sua resposta divergente ao artigo de Dijkstra e "declaração ofensiva", o cientista da computação Howard E. Tompkins defendeu que COBOL era estruturada: "Os programas em COBOL com controle de fluxo complicado na verdade tendem a "paralisar a mente'", mas isso foi porque "Há grande quantidade de programas de aplicativos de negócios escritos por outros programadores que nunca aprenderam corretamente sobre o benefício de manter o COBOL estruturado..."[14] Além disso, a introdução de OO-COBOL adicionou suporte para código orientada a objeto, bem como funções definidas pelo usuário e tipos de dados definidos pelo usuário para o repertório de COBOL. O COBOL 85 não era totalmente compatível com as versões anteriores, resultando nem um "parto de cesariana" do COBOL 85. Joseph T. Brophy, CIO, Travelers Insurance, lideraram uma força-tarefa para informar aos usuários de COBOL dos pesados custos de reprogramação para implementar o novo padrão. Como resultado, o Comitê ANSI do COBOL recebeu mais de 3.200 cartas do público, em sua maioria negativas, exigindo que o comitê fizesse as alterações. Por outro lado, a conversão para COBOL 85 foi pensada para aumentar a produtividade nos próximos anos, justificando, assim, os custos de conversão.[15] A sintaxe da COBOL tem sido muitas vezes criticada por sua verbosidade.[11] No entanto, os defensores notam que isto foi intencional no projeto da linguagem, e muitos a consideram um dos pontos fortes da COBOL. Um dos objetivos do projeto de COBOL foi que gerentes, supervisores e usuários não-programadores pudesse ler e entender seu código. É por isso que a COBOL tem o inglês como sintaxe e elementos estruturais, incluindo: substantivos, verbos, orações, frases, seções e divisões. Consequentemente, a COBOL é considerada por pelo menos uma fonte a ser "A linguagem de programação mais legível, compreensível e documentada em uso hoje. [...] Não só este legibilidade geralmente auxilia o processo de manutenção, mas quanto mais velho um programa se tornar, mais valiosase torna essa legibilidade."[16] Por outro lado, a mera capacidade de ler e entender algumas linhas de código da COBOL não concede a um executivo ou usuário final a experiência e os conhecimentos necessários para projetar, construir e manter sistemas de software de grande porte. Além disso, tradicionalmente a COBOL é uma linguagem simples, com alcance limitado da função (sem ponteiros, sem tipos definidos pelo usuário e sem funções definidas pelo usuário),[17] estimulando um estilo de codificação simples. Isso fez com que seja bem adequada ao seu domínio principal de computação de negócios, onde a complexidade do programa encontra-se em regras de negócio que precisam ser codificados em vez de sofisticados algoritmos e estruturas de dados. E porque a norma não pertence a nenhum fornecedor em particular, os programas escritos em COBOL são altamente portáteis. A língua pode ser utilizada numa grande variedade de plataformas de hardware e sistemas operativos. E sua estrutura hierárquica rígida restringe a definição de referências externas para a Divisão de Ambiente (environment division), o que simplifica a mudança de plataforma em particular.[16] Falta de estruturalismos Problemas de compatibilidade após normalização Sintaxe verbosa Outras defesas Referências 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 7/8 Lawrence R. Newcomer, Cobol Estruturado, Schaum McGraw-Hill, ISBN 0-07-450315-4 Renato Erich Kleiber, Cartão de Referência: Cobol 80, Livros Técnicos e Científicos Editora S/A, ISBN 85-216- 0411-4 Outras linguagens de programação de terceira geração: Associação Brasileira de Profissionais COBOL (http://www.abpc.com.br/ ) Clube Cobol (http://www.clubecobol.com.br) (em inglês) COBOL-Standard Committee (http://www.cobolstandards.com/) (em inglês) (em inglês) COBOL Tutorial (http://www.csis.ul.ie/cobol/default.htm) (em inglês) (em inglês) COBOL Defined (http://www.infogoal.com/cbd/cobol.htm) (em inglês) (em inglês) The future's bright ... the future's Cobol (http://www.techworld.com/applications/features/index.cfm?fea tureid=3056) (em inglês) Obtida de "https://pt.wikipedia.org/w/index.php?title=COBOL&oldid=50460562" 1. Márcia Regina Sawaya. Dicionario De Informatica & Internet (http://books.google.com/ books?id=pJAnIST_RY0C&pg=P A83). NBL Editora; 1999. ISBN 978-85-213-1099-0. p. 83. 2. Stephen R. Schach. Engenharia de Software (http://books.google. com/books?id=Mkk7MriAp_wC&p g=PA465). McGraw Hill Brasil; ISBN 978-85-63308-44-3. p. 465. 3. Rui Bivar De Oliveira. The Power of Cobol: For Systems Developers of the 21st Century (h ttp://books.google.com/books?id= K3pXAAAACAAJ). Booksurge Llc; 30 May 2006. ISBN 978-0- 620-34652-8. 4. Jean_Sammet, The Early History of COBOL (http://portal.acm.org/c itation.cfm?id=1198367), p.121– 161, ACM SIGPLAN Notices, Association for Computing Machinery, Inc., 1978 5. Garfunkel, Jerome (1987). The Cobol 85 Example Book. New York: Wiley. ISBN 0-471-80461-4 6. Wexelblat, Richard (1981). History of Programming Languages. Boston: Academic Press. ISBN 0-12-745040-8 7. Atul Kahate. Object Oriented Analysis & Design (http://books.g oogle.com/books?id=PkVy_zAaru MC&pg=PT420). Tata McGraw- Hill Education; ISBN 978-0-07- 058376-4. p. 420. 8. NetCOBOL for .NET supports COBOL migration and software development in the .NET environment (http://www.adtools. com/products/windows/netcobol. html) 9. Kizior, Ronald J.; Carr, Donald; Halpern, Paul. «Does COBOL Have a Future?» (http://proc.isec on.org/2000/126/ISECON.2000.K izior.pdf) (PDF). The Proceedings of the Information Systems Education Conference 2000. 17 (126). Consultado em 30 de setembro de 2012 10. Behrouz A. Forouzan; Sophia Chung Fegan. Foundations of Computer Science: From Data Manipulation to Theory of Computation (http://books.googl e.com/books?id=xu4jcMBih8QC& pg=PT197). Cengage Learning Editores; 2003. ISBN 978-970- 686-285-3. p. 197. 11. "(...)para escrever um simples programa em Cobol são necessárias muitas linhas de código, o que torna a linguagem não muito fácil de aprender.", Mario Leite. Técnicas de Programação - Uma Abordagem Moderna (http://books.google.co m/books?id=H8A0lZtqaXsC&pg= PA191). Brasport; ISBN 978-85- 7452-229-6. p. 191. 12. Earl H. Parsons. Structured Programming with COBOL Examples (http://books.google.co m/books?id=JcnflKuF2ycC&pg=P A41). [S.l.]: iUniverse. p. 41. ISBN 978-0-595-25094-3 13. Dijkstra (2006). «E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498)» (htt p://www.cs.utexas.edu/users/EW D/transcriptions/EWD04xx/EWD4 98.html). University of Texas at Austin. Consultado em 29 de agosto de 2007 14. "In Defense of Teaching Structured COBOL as Computer Science," Howard E. Tompkins, ACM SIGPLAN Notices, Vol. 18, Issue 4, April 1983. 15. Garfunkel, Jerome (1987). The COBOL 85 example book. New York: Wiley. ISBN 0-471-80461-4 16. COBOL Tutorial - Introduction to COBOL (http://www.csis.ul.ie/cob ol/course/COBOLIntro.htm#part1) 17. "Em COBOL não há funções, mas podemos utilizar o comando PER- FORM para executar sub- rotinas." Cleuton Sampaio. Web 2.0 e Mashups - Reinventando a Internet (http://books.google.com/ books?id=ziA1KREwEIAC&pg=P A46). Brasport; 2007. ISBN 978- 85-7452-338-5. p. 46. ALGOL APL BASIC C FORTRAN Lisp PL/I RPG Lista de palavras reservadas da linguagem de programação COBOL Ver também Ligações externas 07/03/2018 COBOL – Wikipédia, a enciclopédia livre https://pt.wikipedia.org/wiki/COBOL 8/8 Esta página foi editada pela última vez à(s) 23h09min de 12 de novembro de 2017. Este texto é disponibilizado nos termos da licença Creative Commons - Atribuição - Compartilha Igual 3.0 Não Adaptada (CC BY-SA 3.0); pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de uso.
Compartilhar