COBOL
Click here to load reader
-
Upload
evaristo-lima -
Category
Documents
-
view
42 -
download
0
description
Transcript of COBOL
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 1/9
COBOL
Paradigma procedural,Orientação a objeto
Surgido em 1959Últimaversão
COBOL2002
Criado por Grace Hopper, William Selden,Gertrude Tierney, HowardBromberg, Howard Discount,Vernon Reeves, Jean E.Sammet.
Estilo detipagem:
Forte e estática
Dialetos: HP3000 COBOL/II, COBOL/2,IBM OS/VS COBOL, IBMCOBOL/II, IBM COBOL SAA,IBM Enterprise COBOL, IBMCOBOL/400, IBM ILECOBOL, Unix COBOL X/Open,Micro Focus COBOL, MicrosoftCOBOL, Ryan McFarlandRM/COBOL, Ryan McFarlandRM/COBOL85, DOSVSCOBOL, UNIVAC COBOL,Realia COBOL, FujitsuCOBOL, ICL COBOL,ACUCOBOLGT, COBOLIT,DEC COBOL10, DEC VAXCOBOL, Wang VS COBOL,Visual COBOL, Tandem(NonStop) COBOL85, Tandem(NonStop) SCOBOL (umvariante de COBOL74 para criarconsolas em terminais baseadosem texto)
Influenciadapor
FLOWMATIC, COMTRAN,FACT
Influenciou PL/I, CobolScript, ABAP
COBOLOrigem: Wikipédia, a enciclopédia livre.
COBOL (sigla de COmmon Business Oriented Language) Linguagem Comum Orientada para os Negócios é umalinguagem de programação orientada para oprocessamento de banco de dados comerciais. É alinguagem de programação inteira mais usada, produto doDepartamento de Defesa norteamericano sob a direção dacontraalmirante Grace Murray Hopper.
As especificações do COBOL 2002 incluem suporte àprogramação orientada a objetos e outras característicasdas linguagens modernas.
Índice
1 História e especificação1.1 ANS COBOL 19681.2 COBOL 19741.3 COBOL 19851.4 COBOL 2002 e o COBOL orientado aobjeto1.5 História de normas COBOL1.6 Legado
2 Características2.1 Olá, mundo
2.1.1 Olá, OS/360 cerca de 19723 Estrutura básica
3.1 Área de codificação no COBOL4 Críticas e defesas
4.1 Falta de estruturalismos4.2 Problemas de compatibilidade apósnormalização4.3 Sintaxe verbosa4.4 Outras defesas
5 Referências6 Ver também7 Ligações externas
História e especificação
O COBOL foi criado por um comitê de investigadores de várias instituições civis e governamentaisdurante o segundo semestre de 1959. As especificações eram em grande parte inspiradas na linguagemde programação FLOWMATIC inventada pela Grace Hopper referida como "a mãe da línguaCOBOL." A linguagem de programação da IBM COMTRAN inventada pelo Bob Bemer também foi
1
2
3
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 2/9
utilizada, mas a especificação da FACT da Honeywell tinha sido distribuída até tarde aos membros docomitê do processo, e teve relativamente pouco impacto. O uso corrente e estudo do FLOWMATICcomo a única linguagem do grupo de estudo que efetivamente tinha sido utilizada numa situação real,fez com que fosse bastante atractiva ao comitê.
Em 8 de abril de 1959, na CODASYL (Conference on Data Systems Language) destinada a usuários epessoas da universidade, no centro de computação da Universidade da Pensilvânia, o Departamento deDefesa dos Estados Unidos, posteriormente, concordou em patrocinar e supervisionar as próximasatividades. A reunião presidida por Charles A. Phillips foi realizada no Pentágono em 28/29 de maio de1959 (exatamente um ano após a reunião em Zurique do ALGOL 58), não foi decidido definir de trêscomissões: de curto, médio e longo alcance (a última nunca foi realmente formada). Foi o Comitê deCurto Prazo, presidido por Joseph Wegstein do National Bureau of Standards que durante os mesesseguintes criou uma descrição da primeira versão do COBOL. O comitê foi constituído por membrosrepresentantes de seis fabricantes de computadores e três órgãos governamentais, a saber: BurroughsCorporation, IBM, MinneapolisHoneywell (Honeywell Labs), RCA, Sperry Rand, e Sylvania ElectricProducts, e a Força Aérea dos Estados Unidos, o David Taylor Model Basin e a Agência Nacional dePadrõ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 Prazodesenvolveu as especificações da linguagem COBOL. Este subcomitê era formado por seis pessoas:
William Selden e Gertrude Tierney da IBMHoward Bromberg e Howard Discount da RCAVernon Reeves e Jean E. Sammet da Sylvania Electric Products
A decisão de usar o nome "COBOL" foi feita em uma reunião do comitê realizada em 18 de setembro de1959. 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, umcomputador RCA e uma RemingtonRand Univac, demonstrando que a compatibilidade pode seralcançada.
ANS COBOL 1968
Depois de 1959 o COBOL sofreu várias modificações e melhorias. Na tentativa de superar o problemada 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 COBOL61que se tornou a pedra angular para mais versões. Esta versão ficou conhecida como American NationalStandard (ANS) COBOL.
COBOL 1974
Em 1974, a ANSI publicou uma versão revista da (ANS) COBOL, que continha uma série de recursosque não estavam na versão 1968.
COBOL 1985
4
5
6
7
7
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 3/9
Em 1985, a ANSI publicou ainda uma outra versão revista que tinha novas funcionalidades que nãoapareciam no padrão 1974, como construções de linguagem mais notavelmente estruturadas("terminadores de escopo"), incluindo END‐IF, END‐PERFORM, END‐READ, etc.
COBOL 2002 e o COBOL orientado a objeto
A linguagem continua a evoluir até hoje. No início de 1990, decidiuse acrescentar a orientação a objetosna próxima revisão completa do COBOL. A estimativa inicial era ter esta revisão concluída em 1997 eum ISO CD (Committee Draft, rascunho do comitê) disponível até 1997. Alguns fornecedores (incluindoa Micro Focus, a Fujitsu, a Veryant e a IBM) introduziram a sintaxe orientada a objetos com base nosrascunhos de 1997 ou outro da revisão completa. A versão final aprovada no padrão ISO (adotado comoum padrão ANSI por INCITS) foi aprovada e disponibilizado em 2002.
Assim como a C++ e a Java, os compiladores COBOL estão disponíveis enquanto a linguagem se moveem direção à padronização. A Fujitsu, a Micro Focus e a Raincode atualmente suportam os compiladoresCOBOL orientados a objetos visando o .NET.
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 LocaleFunções amigáveis ao usuárioCALL (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 armazenagemConvenções de chamada de e para línguas nãoCOBOL, como CSuporte para execução em ambientes estruturas como .NET e Java (incluindo COBOL instanciadocomo Enterprise JavaBeans)Suporte a Bit e BoolSuporte a "True" (até esta melhoria, itens binários eram truncados (pela especificação de base10)dentro da divisão de dados)Suporte a ponto flutuanteResultados aritméticos padrão (ou portáteis)Geração e parsing de XML
História de normas COBOL
As especificações aprovadas por todo o Comitê de Curto Prazo foram aprovadas pelo Comitê Executivoem 3 de janeiro de 1960, e enviadas para a gráfica do governo que editou e imprimiu essasespecificações como COBOL 60.
O American National Standards Institute (ANSI) produziu várias revisões do padrão COBOL, incluindo:
COBOL68COBOL74COBOL85Intrinsic Functions Amendment 1989Corrections Amendment 1991
Após as alterações de 1985 o padrão ANSI (que era adotado pela ISO), o desenvolvimento e aapropriação foi assumida pela ISO. As seguintes edições e TRs (Relatórios Técnicos) foram emitidaspelo padrão ISO (e adotados como ANSI):
COBOL 2002
8
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 4/9
Finalizer Technical Report 2003Native XML syntax Technical Report 2006Bibliotecas 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 eraesperado primeiros em 2010. Para obter informações sobre esta revisão, ver o mais recente projeto destarevisão, ou para ver o que as outro trabalhos em progresso no padrão COBOL, consulte o site de normasdo COBOL (http://www.cobolstandard.info).
Legado
Programas em COBOL estão em uso globalmente em agências governamentais e militares além deempresas 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, oGartner Group relatou que 80% dos negócios do mundo rodavam em COBOL com mais de 200 bilhõesde linhas de código existentes e cerca de 5 bilhões de linhas de código novo por ano.
Características
O COBOL teve como meta servir como uma linguagem de programação para negócios. Os programaspara negócios não precisam de cálculos tão precisos como os encontrados em engenharia, assim oCOBOL foi concebido basicamente com as características:
Acesso rápido a arquivos e bases de dadosAtualização rápida de arquivos e bases de dadosGeração de uma grande quantidade de informaçõesSaída com um formato compreensível ao usuário
O COBOL é geralmente a linguagem escolhida em cálculos financeiros por suportar aritmética inteiraaplicada a números muito grandes (milhões, bilhões etc) ao mesmo tempo que é capaz de lidar comnúmeros muito pequenos como frações de centavos. Outra característica é a formatação, classificaçãoe geração de relatórios.
Olá, mundo
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 aspasduplas, além do padrão de aspas simples:
9
10
112
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 5/9
DISPLAY "Hello, world".
Olá, OS/360 cerca de 1972
Em um IBM System/360 executando OS/360 MVT 21.8f, por volta de 1972, o teste Olá, Mundo terialevado perfurado cartões de 80 colunas, contendo o códigofonte 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. 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//
Estrutura básica
No COBOL há três tipos básicos de dados usados nas instruções:
Numérico (sinalizado ou não, com decimal ou inteiros)AlfanuméricoConstantes figurativas
O COBOL consiste basicamente em quatro divisões separadas:
IDENTIFICATION DIVISION
A IDENTIFICATION DIVISION possui informações documentais, como nome do programa, quem ocodificou e quando essa codificação foi realizada.
ENVIRONMENT DIVISION
A ENVIRONMENT DIVISION descreve o computador e os periféricos que serão utilizados peloprograma.
DATA DIVISION
A DATA DIVISION descreve os arquivos de entrada e saída que serão usadas pelo programa. Tambémdefine as áreas de trabalho e constantes necessárias para o processamento dos dados.
PROCEDURE DIVISION
11
12
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 6/9
A PROCEDURE DIVISION contém o código que irá manipular os dados descritos na DATADIVISION. É 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
Área de codificação no COBOL
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érico8 a 72 instruções do COBOL iniciando na coluna 8
Críticas e defesas
Falta de estruturalismos
Em sua carta a um editor em 1975, intitulado "Como é que vamos dizer verdades que podemmachucar?" que era crítica a várias linguagens de programação contemporâneas como o COBOL, ocientista da computação e vencedor do Prêmio Turing, Edsger Dijkstra comentou que "O uso deCOBOL mutila a mente, o seu ensino deve, portanto, ser considerado como uma infração penal".
Em sua resposta divergente ao artigo de Dijkstra e "declaração ofensiva", o cientista da computaçãoHoward E. Tompkins defendeu que COBOL era estruturada: "Os programas em COBOL com controlede fluxo complicado na verdade tendem a "paralisar a mente'", mas isso foi porque "Há grandequantidade de programas de aplicativos de negócios escritos por outros programadores que nuncaaprenderam corretamente sobre o benefício de manter o COBOL estruturado..."
Além disso, a introdução de OOCOBOL adicionou suporte para código orientada a objeto, bem comofunções definidas pelo usuário e tipos de dados definidos pelo usuário para o repertório de COBOL.
Problemas de compatibilidade após normalização
O COBOL 85 não era totalmente compatível com as versões anteriores, resultando nem um "parto decesariana" do COBOL 85. Joseph T. Brophy, CIO, Travelers Insurance, lideraram uma forçatarefa parainformar aos usuários de COBOL dos pesados custos de reprogramação para implementar o novopadrão. Como resultado, o Comitê ANSI do COBOL recebeu mais de 3.200 cartas do público, em sua
13
14
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 7/9
maioria negativas, exigindo que o comitê fizesse as alterações. Por outro lado, a conversão para COBOL85 foi pensada para aumentar a produtividade nos próximos anos, justificando, assim, os custos deconversão.
Sintaxe verbosa
A sintaxe da COBOL tem sido muitas vezes criticada por sua verbosidade. No entanto, os defensoresnotam que isto foi intencional no projeto da linguagem, e muitos a consideram um dos pontos fortes daCOBOL. Um dos objetivos do projeto de COBOL foi que gerentes, supervisores e usuários nãoprogramadores pudesse ler e entender seu código. É por isso que a COBOL tem o inglês como sintaxe eelementos 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 deprogramação mais legível, compreensível e documentada em uso hoje. [...] Não só este legibilidadegeralmente auxilia o processo de manutenção, mas quanto mais velho um programa se tornar, maisvaliosa se torna essa legibilidade." Por outro lado, a mera capacidade de ler e entender algumas linhasde código da COBOL não concede a um executivo ou usuário final a experiência e os conhecimentosnecessários para projetar, construir e manter sistemas de software de grande porte.
Outras defesas
Além disso, tradicionalmente a COBOL é uma linguagem simples, com alcance limitado da função (semponteiros, sem tipos definidos pelo usuário e sem funções definidas pelo usuário), estimulando umestilo de codificação simples. Isso fez com que seja bem adequada ao seu domínio principal decomputação de negócios, onde a complexidade do programa encontrase em regras de negócio queprecisam ser codificados em vez de sofisticados algoritmos e estruturas de dados. E porque a norma nãopertence 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. Esua 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.
Referências
1. Márcia Regina Sawaya. Dicionario De Informatica & Internet (http://books.google.com/books?id=pJAnIST_RY0C&pg=PA83). NBL Editora; 1999. ISBN 9788521310990. p. 83.
2. Stephen R. Schach. Engenharia de Software (http://books.google.com/books?id=Mkk7MriAp_wC&pg=PA465). McGraw Hill Brasil; ISBN 9788563308443. p. 465.
3. Rui Bivar De Oliveira. The Power of Cobol: For Systems Developers of the 21st Century(http://books.google.com/books?id=K3pXAAAACAAJ). Booksurge Llc; 30 May 2006. ISBN 9780620346528.
4. Jean_Sammet, The Early History of COBOL (http://portal.acm.org/citation.cfm?id=1198367), p.121–161,ACM SIGPLAN Notices, Association for Computing Machinery, Inc., 1978
5. GARFUNKEL, Jerome. The Cobol 85 Example Book. New York: Wiley, 1987. ISBN 04718046146. WEXELBLAT, Richard. History of Programming Languages. Boston: Academic Press, 1981. ISBN 01274504087. Atul Kahate. Object Oriented Analysis & Design (http://books.google.com/books?id=PkVy_zAaruMC&pg=PT420). Tata McGrawHill Education; ISBN 9780070583764. 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. "Does COBOL Have a Future? (http://proc.isecon.org/2000/126/ISECON.2000.Kizior.pdf)". The Proceedingsof the Information Systems Education Conference 2000 17 (126).
10. Behrouz A. Forouzan; Sophia Chung Fegan. Foundations of Computer Science: From Data Manipulation toTheory of Computation (http://books.google.com/books?id=xu4jcMBih8QC&pg=PT197). Cengage LearningEditores; 2003. ISBN 9789706862853. p. 197.
15
11
16
17
16
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 8/9
Lawrence R. Newcomer, Cobol Estruturado, Schaum McGrawHill, ISBN 0074503154Renato Erich Kleiber, Cartão de Referência: Cobol 80, Livros Técnicos e Científicos Editora S/A,ISBN 8521604114
Ver também
Outras linguagens de programação de terceira geração:
Ligações externas
Associação Brasileira de Profissionais COBOL (http://www.abpc.com.br/)Clube Cobol (http://www.clubecobol.com.br)(em inglês) COBOLStandard 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?featureid=3056) (em inglês)
Obtida de "http://pt.wikipedia.org/w/index.php?title=COBOL&oldid=40938716"
Categorias: Linguagens de programação orientadas a objetos Linguagens de programação proceduraisLinguagens de programação .NET Linguagens de programação criadas na década de 1950
11. "(...)para escrever um simples programa em Cobol são necessárias muitas linhas de código, o que torna alinguagem não muito fácil de aprender.", Mario Leite. Técnicas de Programação Uma Abordagem Moderna(http://books.google.com/books?id=H8A0lZtqaXsC&pg=PA191). Brasport; ISBN 9788574522296. p.191.
12. Earl H. Parsons. Structured Programming with COBOL Examples (http://books.google.com/books?id=JcnflKuF2ycC&pg=PA41). [S.l.]: iUniverse. p. 41. ISBN 9780595250943
13. Dijkstra (2006). E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498)(http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD498.html) University of Texas atAustin. Visitado em August 29, 2007.
14. "In Defense of Teaching Structured COBOL as Computer Science," Howard E. Tompkins, ACM SIGPLANNotices, Vol. 18, Issue 4, April 1983.
15. GARFUNKEL, Jerome. The COBOL 85 example book. New York: Wiley, 1987. ISBN 047180461416. COBOL Tutorial Introduction to COBOL (http://www.csis.ul.ie/cobol/course/COBOLIntro.htm#part1)17. "Em COBOL não há funções, mas podemos utilizar o comando PER FORM para executar subrotinas."
Cleuton Sampaio. Web 2.0 e Mashups Reinventando a Internet (http://books.google.com/books?id=ziA1KREwEIAC&pg=PA46). Brasport; 2007. ISBN 9788574523385. p. 46.
ALGOLAPLBASICCFORTRANLispPL/IRPGAnexo:Lista de palavras reservadas da linguagem de programação COBOL
25/03/2015 COBOL – Wikipédia, a enciclopédia livre
http://pt.wikipedia.org/wiki/COBOL 9/9
Esta página foi modificada pela última vez à(s) 17h54min de 26 de dezembro de 2014.Este texto é disponibilizado nos termos da licença Creative Commons Atribuição CompartilhaIgual 3.0 Não Adaptada (CC BYSA 3.0); pode estar sujeito a condições adicionais. Para maisdetalhes, consulte as Condições de Uso.