trabalho linguagensletter

17

Click here to load reader

Upload: api-3696233

Post on 07-Jun-2015

163 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabalho LinguagensLetter

FACULDADE COTEMIG5º PERÍODO - CURSO DE BACHARELADO EM SISTEMAS DE

INFORMAÇÃOLINGUAGENS DE PROGRAMAÇÃO – PROF. RENAN CUNHA

LINGUAGENS DE PROGRAMAÇÃO

A LINGUAGEM COBOL

Nomes:

Albert Tanure

Braulio José

BELO HORIZONTE

2007

Page 2: Trabalho LinguagensLetter

SUMÁRIO

SUMÁRIO.............................................................................................................2

1. INTRODUÇÃO..................................................................................................3

1.1 HISTÓRICO................................................................................................3

1.2 DOMÍNIO DE APLICAÇÃO DA LINGUAGEM.....................................................3

1.3 PROJETO DA LINGUAGEM..........................................................................4

2. ASPECTOS TEÓRICOS................................................................................5

2.1 PARADIGMAS DA LINGUAGEM.....................................................................5

2.2 IMPLEMENTAÇÃO DA LINGUAGEM...............................................................5

2.3 ESTRUTURA DE DADOS..............................................................................6

2.3.1 Alfanuméricos......................................................................................6

2.3.2 Numéricos...........................................................................................6

2.3.3 Literal Numérico..................................................................................6

2.3.4 Literal Alfanumérico.............................................................................7

2.4 CONSIDERAÇÕES SOBRE A SINTAXE...........................................................7

2.4.1 IDENTIFICATION DIVISION...............................................................7

2.4.2 ENVIRONMENT DIVISION.................................................................8

2.4.3 DATA DIVISION..................................................................................8

2.4.4 PROCEDURE DIVISION.....................................................................8

2.4.5 Convenções do COBOL......................................................................8

2.5 AVALIAÇÃO DA LINGUAGEM......................................................................10

3. CONLUSÃO....................................................................................................12

4. Referências Bibliográficas...........................................................................13

2

Page 3: Trabalho LinguagensLetter

1. Introdução

1.1 Histórico

Em 1958 o governo norte-americano enfrentava grandes problemas com

os sistemas, que cada vez tornavam-se mais complexos e de difícil controle,

e também com os custos de manutenção, totalmente elevados para a época,

que chegavam a elevados custos por ano. O governo então propôs ao

Pentágono a criação de uma linguagem independente de fabricante e com

uma legibilidade maior que o FORTRAN. Surgiu-se então o COBOL.

Criado em 1959 com ajuda de grupos de usuários, fabricantes e também

órgãos do governo norte-americano, o COBOL (Commom Business Oriented

Language) é uma linguagem de computador orientada para negócios. As

especificações foram criadas tirando muita base na linguagem FLOW-MATIC

e também da linguagem COMTRAN. COBOL também serviu de inspiração

para a linguagem ADA.

1.2 Domínio de aplicação da Linguagem

O propósito do COBOL era atender sistemas comerciais e

administrativos.

Não sendo necessária a manipulação de fórmulas matemáticas mais

complexas e sim manipulação de arquivos de textos de constante

atualização, o COBOL demonstra recursos para manipulação de dados de

entrada e saída, sendo considerada uma linguagem de terceira geração.

Diferente de outras linguagens criadas para determinados tipos de

problemas, o COBOL atendia a recursos financeiros, onde disseminou em

áreas governamentais como na agricultura, educação, indústrias, serviços e

comércio. Essa disseminação deu-se pelo surgimento de micros, planilhas e

banco de dados, e recursos como geração de relatórios elaborados,

3

Page 4: Trabalho LinguagensLetter

maneiras precisas de descrever e elaborar números decimais e caracteres,

e, habilidade para especificação de operações aritméticas decimais.

1.3 Projeto da Linguagem

Todas as instruções escritas na linguagem COBOL são em inglês ao

invés de códigos complexos. Os programas nela escrito, apesar de mais

extensos, são mais claros, de fácil assimilação. Como são inscritas em inglês

tornam o código auto-documentado.

A linguagem contém muitas palavras reservadas. Outra característica que

deve ser frisada é a identação do código, pois se você não respeitar, com

certeza não irá funcionar gerando um grande número de erros. No exemplo

que fizemos no final deste trabalho tivemos dificuldades iniciais ligadas à

identação. Vale lembrar que isso varia do compilador, os novos compiladores

tratam isso, como também a sensibilidade da escrita, pois palavras

reservadas devem ser escritas em maiúscula, porém alguns compiladores

traduzem essas palavras reservadas no momento da compilação, não

obrigando ela estar em maiúscula no código fonte.

4

Page 5: Trabalho LinguagensLetter

2. Aspectos Teóricos

2.1 Paradigmas da Linguagem

O COBOL utiliza o paradigma imperativo. Absorvendo a idéia baseada

em estados, e comandos que modificam este estado, os programas são

escritos para modelar processos e objetos do mundo real.

Esses objetos frequentemente possuem estados que variam com o

tempo, e são representados por variáveis. Algumas vantagens que podemos

destacar é a organização do programa que este paradigma proporciona

embora algumas desvantagens sejam códigos mais complexos e reutilização

de código pouco eficiente.

Outras linguagens que se encaixam nesse paradigma:

Ada;

Pascal;

C;

Fortran.

2.2 Implementação da Linguagem

COBOL é compilada, os programas são traduzidos em linguagem de

máquina e são executados diretamente no computador. Uma grande

vantagem da compilação é a execução rápida do programa.

Outra vantagem que podemos citar neste ponto é a portabilidade, pois

você pode ter compiladores para diversos sistemas.

2.3 Estrutura de dados

Existem três tipos básicos que são utilizados no COBOL:

5

Page 6: Trabalho LinguagensLetter

Alfanumérico;

Numérico (decimais ou inteiros);

Literais.

2.3.1 Alfanuméricos

Contém informações alfanumérico.

Exemplo de declaração:

Nome Pic X(30).

Se quiser inicializar Nome com “Ronaldo”, deve se fazer: Nome Pic

X(30) Value “Ronaldo”. Automaticamente é preenchido com espaço vazio

quando não é inicializada a variável. Se for necessário repetir os valores

dentro de um campo na inicialização, você pode fazer Pic X(30) All “k”,

tudo será preenchido com K.

2.3.2 Numéricos

Contém números.

É definido usando a clausula Pic 9.

Se você declara Pic 9, você poderá usar de 1 a 99 para a variável

declarada, você pode declarar até no máximo 18 dígitos, ou seja Pic

9(18). É possível também especificar a quantidade de casas decimais,

por exemplo, Pic 9(2)V99, isto significa que você terá duas casas

decimais, representadas seguidas do V.

2.3.3 Literal Numérico

Máximo de 18 dígitos.

Exemplos:

33 25 -98.12

2.3.4 Literal Alfanumérico

Máximo de 120 caracteres incluindo os espaços.

Exemplo:

6

Page 7: Trabalho LinguagensLetter

“Trabalho de Linguagens”.

2.4 Considerações sobre a sintaxe

Como o intuito do Cobol era ser intuitivo, ele teve como base de

utilização o inglês, onde você pode encontrar verbos, sentenças da língua

inglesa contidas na linguagem. O bom que isso tornou a linguagem simples e

logicamente já “auto-documentada”.

2.4.1 IDENTIFICATION DIVISION

Esta seção identifica o programa para o compilador. O Program-Id que

conterá o nome do programa é muito importante, pois ele que será

referenciado no sistema operacional quando você o executa, e também

quando um programa Cobol fizer uma chamada a outro programa Cobol, é

através deste nome que ele o referência.

A estrutura com os possíveis campos:

[IDENTIFICATION DIVISION]

PROGRAM-ID. Nome do programa

[AUTHOR. Nome do programador.]

[INSTALLATION. Nome da empresa.]

[DATE-WRITTEN. Data escrita.]

[DATE-COMPILED. Data de compilação.]

[SECURITY. Comentários de segurança.]

[REMARKS. Comentários gerais]

2.4.2 ENVIRONMENT DIVISION

Contém informações do ambiente que o programa será compilado,

computador que irá rodar a aplicação. Outras informações também podem

ser adicionadas como periféricos que serão utilizados.

7

Page 8: Trabalho LinguagensLetter

2.4.3 DATA DIVISION

Data Division descreve a informações que serão usadas no programa.

Você precisa descrever os arquivos e campos que serão utilizados.

2.4.4 PROCEDURE DIVISION

Informa às instruções que deverão ser seguidas e tomadas para o

processamento esperado.

2.4.5 Convenções do COBOL

Da coluna de 1ª a 6ª pode se usar um numero seqüencial opcional. As

divisões, seções e parágrafos devem ser codificados a partir da oitava

coluna.

Para comentar uma linha de código, devemos colocar um asterisco na

sétima coluna, ele irá ignorar aquela linha.

Todas as outras declarações são codificadas a partir da coluna 12 ª.

Cada declaração termina com um ponto final, que deve ser acompanhado de

espaço.

Coluna de 73ª a 80ª é ignorada pelo compilador.

Abaixo temos um simples programa, que tem como objetivo pegar um

número de quatro dígitos e verificar se ele é positivo ou negativo.

Primeiramente deve se obter um número que o usuário deseja verificar, e

logo após é feita uma rotina de verificação para chegar à conclusão do

resultado.

000001 IDENTIFICATION DIVISION.

000002 PROGRAM-ID. Exemplo.

000003 ENVIRONMENT DIVISION.

000004 DATA DIVISION.

000005 WORKING-STORAGE SECTION.

8

Page 9: Trabalho LinguagensLetter

000006 01 NUMERO PIC 9(04).

000007 01 DIVISAO PIC 9(04).

000008 01 RESUL PIC X(10) VALUE "PAR".

000009 PROCEDURE DIVISION.

000010 010-EXECUTANDO.

000011 DISPLAY(05, 05) "Digite um numero".

000012 ACCEPT (05, 26) NUMERO.

000013 DIVIDE NUMERO BY 2 GIVING DIVISAO REMAINDER DIVISAO.

000014 IF NOT(DIVISAO=0)

000015 MOVE "IMPAR" TO RESUL.

000016 DISPLAY (09, 05) "O Numero ".

000017 DISPLAY (09, 14) NUMERO.

000018 DISPLAY (09, 20) RESUL.

000019 STOP RUN.

Linha 1 temos uma definição obrigatória, a primeira divisão onde podemos

explicar a finalidade do programa.

Linha 2 Program-id é uma palavra reservada, logo a frente podemos ver que o

nome do programa é Exemplo.

Linha 3 segunda divisão onde fornece informações sobre o ambiente de

execução do programa.

Linha 4 terceira divisão onde fornece as definições dos campos e arquivos

utilizados.

Linha 5 Working-Storage Section fornece os campos que iremos usar. Outros

tipos de declaração poderiam ser usados, como File Section.

Linha 6 “01” é um nível reservado que descreve uma variável simples. A

cláusula Pic descreve as informações características que o Numero será do

tipo numérico e conterá 4 dígitos.

Linha 7. A clausula Pic descreve uma variável chamada Divisao que será do

tipo numérico e conterá 4 dígitos.

Linha 8 descreve uma variável do tipo alfanumérica (X) que terá 10 caracteres e

será inicializada com a frase “Positivo”.

Linha 9 quarta divisão que descreve os procedimentos do programa.

9

Page 10: Trabalho LinguagensLetter

Linha 10 descreve um parágrafo dentro da procedure division, é obrigatório um

parágrafo. Ele pode ser usado como ponto de chamada, por exemplo GOTO

nome do parágrafo.

Linha 11 Display irá mostrar a frase “Digite um numero” na linha 5 coluna 5.

Linha 12 Accept irá esperar receber um numero na linha 5 coluna 26 e este

numero será armazenado na variável Numero.

Linha 13 Divide irá dividir o número informado por 2,

Giving Divisao colocará o quociente da divisão dentro da variável Divisão.

Remainder Divisao obterá o resto da divisão, e coloca dentro da variável

Divisao. Como quero obter somente o resto da divisão, atribuo as duas coisas

na mesma variável.

Linha 14 IF NOT (DIVISAO=0), nega a condição se DIVISAO é igual a zero, pois

se ela não for igual a zero é que a divisão teve resto, ou seja, é impar.

Linha 15 Move “impar” to Resul. Coloca a frase ÍMPAR dentro da variável Resul.

Linha 16 irá colocar a frase “O numero“ na posição linha 9 coluna 5.

Linha 17 irá mostrar o número que o usuário digitou na linha 9 coluna 14.

Linha 18 irá mostrar se é PAR ou IMPAR na linha 9 coluna 14.

Linha 19 irá parar a execução do programa.

2.5 Avaliação da Linguagem

COBOL é simples, não possui ponteiros, tipos definidos por usuários,

funções definidas pelo usuário. Incentiva um estilo de programação direto e

simples, mesmo porque sua estrutura hierárquica é rígida e ajuda na

padronização dos mesmos facilitando a legibilidade e a manutenção,

simplicidade e ortogonalidade. Além disso, COBOL atende bem aos

propósitos do seu domínio de aplicações. Com sua portabilidade e suas

facilidades, caso precise ser reutilizada em outras máquinas de diferentes

fornecedores, onde pode haver novos dispositivos, os programadores

10

Page 11: Trabalho LinguagensLetter

facilmente poderão efetuar as alterações necessárias para acomodar essas

mudanças.

COBOL também pode ser considerada uma linguagem de fácil escrita,

possui poucos tipos de dados e funções. Um programador em pouco tempo

pode facilmente aprender essa linguagem.

Sua confiança é muito grande para seu domínio de aplicações, contanto

que as estruturas de dados de entrada para um programa não mude. Por ser

fácil de escrever, tende aumentar a probabilidade de exclusão de erros Se o

programa funcionar uma vez, certamente vai funcionar quantas vezes for

necessário. Existem programas que são executados a mais de 40 anos com

algumas poucas mudanças.

11

Page 12: Trabalho LinguagensLetter

3. Conlusão

O COBOL foi uma grande inovação em sua época para o seu domínio de

aplicações. De fácil aprendizado e uma linguagem mais clara do que somente

códigos, contribuiu muito para as organizações e conquistou “adoradores” no

mundo da programação. Apesar de tão ultrapassada, ainda existem

aplicações em COBOL ativavas, sem previsões para serem migradas, pois

funcionam perfeitamente.

O COBOL possui um padrão ANSI e hoje se encontra na versão 2002, já

existem implementações para o Framework .net da Microsoft.

12

Page 13: Trabalho LinguagensLetter

4. Referências Bibliográficas

Livro:

Teach Yourself Cobol in 24 Hours – Thane Hubbell

http://www.infonet.com.br/users/COBOL/sintaxe_da_linguagem.htm

http://c obit.mma.com.br/precursores/grace_hopper.htm

http://www.clubecobol.com.br

http://tiny-cobol.sourceforge.net/index.php

http://www.clubecobol.com.br/cc_grace.asp

http://www.turbocpage.hpg.ig.com.br/paginas/historia/historia_do_c.htm

http://www.clubecobol.com.br/cc_pq_COBOL.asp

http://www.infonet.com.br/users/COBOL/sintaxe_da_linguagem.htm

http://cobit.mma.com.br/precursores/grace_hopper.htm

http://www.cobolware.com.br/ultrapassado.html

http://www.infonet.com.br/users/COBOL/sintaxe_da_linguagem.htm

13