231 lines
12 KiB
Plaintext
231 lines
12 KiB
Plaintext
Guia Tinycobol (Gnu)
|
||
=====================================
|
||
InfoCont Sistemas Integrados
|
||
Joinville - Santa Catarina - Brasil
|
||
Versao 1.00 - Quarta, 31 de Maio de 2006
|
||
|
||
|
||
Resumo
|
||
------
|
||
|
||
Este tutorial tem por objetivo ser uma referência no aprendizado e uso
|
||
do TinyCOBOL em ambiente Windows, trazendo informações objetivas para
|
||
os primeiros passos e também tutoriais para o uso avançado.
|
||
|
||
Nota de Copyright
|
||
-----------------
|
||
|
||
Copyleft (C) 2006 - InfoCont Sistemas Integrados Ltda.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.1 or
|
||
any later version published by the Free Software Foundation; A copy of
|
||
the license is included in the section entitled "GNU Free
|
||
Documentation License".
|
||
----------------------------------------------------------------------------------
|
||
|
||
Conteúdo
|
||
--------
|
||
1 - O que é o TinyCOBOL (TC)
|
||
2 - Como compilar no TinyCOBOL
|
||
3 - CBL2COB - Conversor automático de Sintaxe
|
||
4 - Tutoriais
|
||
5 - Dúvidas e Sugestões.
|
||
6 - Agradecimentos
|
||
|
||
----------------------------------------------------------------------------------
|
||
1 - O que é o TinyCOBOL.
|
||
|
||
O TinyCOBOL é um compilador COBOL free, criado por um brasileiro chamado
|
||
Rildo Pragana e atualmente está sendo desenvolvido por uma equipe de diversas
|
||
partes do mundo (Brasil/Europa/EUA). Por ser um compilador livre, não é
|
||
necessário pagar para obter suas versões. Para garantir a sua liberdade, o
|
||
TinyCOBOL é licenciado dentro dos termos da GNU – General Public Licence, o
|
||
que significa que seu código fonte é livremente distribuído e disponível em
|
||
domínio público.
|
||
Ele é totalmente baseado no padrão ANSI 85 e está disponível para arquitetura
|
||
Intel(IA32) ou processadores compatíveis nas seguintes plataformas:
|
||
* BeOS
|
||
* FreeBSD
|
||
* Linux
|
||
* Windows
|
||
Apesar de ser um projeto internacional, possui muitas informações em
|
||
português, indispensáveis para os primeiros passos no compilador. Estas
|
||
informações poderão ser obtidas no site http://br.tinycobol.org.
|
||
Neste site existe um recurso chamado WikiWiki, que apesar do nome incomum é
|
||
como uma apostila virtual, onde estão reunidas inúmeras informações sobre
|
||
instalação, configuração, uso e outros. Qualquer suporte adicional poderá ser
|
||
obtido através do Clube Cobol e também através da lista de discussão
|
||
internacional, com participação dos desenvolvedores.
|
||
Atualmente, o TinyCOBOL vem sendo desenvolvido por Walter Garrote, brasileiro
|
||
de Goiânia - GO.
|
||
Participe do desenvolvimento deste grande compilador, auxiliando no patrocínio
|
||
do projeto. Para maiores informações sobre como contribuir, entre em contato
|
||
com Walter Garrote (fone (62) 3093-1909 ou e-mail gaaw7@hotmail.com) ou com
|
||
Fernando Wuthstrack (fone (47) 3422-3536 ou e-mail fernando@infocont.com.br).
|
||
|
||
Seja bem vindo ao universo do TinyCOBOL!!!!
|
||
|
||
----------------------------------------------------------------------------------
|
||
|
||
2 - Como compilar no TinyCOBOL.
|
||
|
||
Assim como todos os demais compiladores COBOL, a compilação se dá por meio de
|
||
um comando de disparo, que no caso do TinyCOBOL é o HTCOBOL. O HT no início do
|
||
comando é herança do HandTerm, hardware criado pelo Rildo Pragana para onde foi
|
||
desenvolvido o TinyCOBOL.
|
||
A sintaxe básica de compilação é a seguinte:
|
||
|
||
htcobol [opções] programa_fonte
|
||
|
||
Opções especificas do Compilador:
|
||
-h Mostra ajuda
|
||
-a Cria biblioteca estática; pre-processa, compila, assembla e arquiva
|
||
-B <modo> modo específico para aglutinação (estática/dinâmica)
|
||
-c Compilação para um módulo de objeto estaticamente linkado
|
||
-e <nome> Especifica o ponto de entrada (primeiro programa a executar)
|
||
-E Saída do preprocessador para saída padrão apenas; não compila,
|
||
assembla ou linka
|
||
-g Gera saída de debug de compilação (para uso do "animator" DDD).
|
||
-l <arquivo> Adiciona biblioteca na linkedição
|
||
-L <diretorio> Adiciona diretório ao caminho de procura de bibliotecas
|
||
-m <arquivo> Cria biblioteca dinâmica; pre-processa, compila, assembla e linka
|
||
-M <opções> Especifica opção para identificação de programa principal(auto|first|none)
|
||
-n Não executa nenhum comando, deve mostrar a compilação
|
||
-o <arquivo> Especifica nome do executável (padrão de entrada x extensão)
|
||
-S Preprocessa, compila(gera codigo assembler) somente; não assembla ou
|
||
linka
|
||
-v Gera saída do compilador verbosa
|
||
-V Mostra informações da versao do compilador e sai
|
||
-Wl,<opcoes> Passar opções separadas por virgula ao linkeditor
|
||
-x Compilacao para criar um executável
|
||
-z Gera saída do compilador verbosa
|
||
Opcoes específicas do COBOL:
|
||
-C Faz todas as chamadas dinâmicas COBOL
|
||
-D Inclui linhas de debug no fonte
|
||
-F Fonte de entrada esta em formato de coluna fixa padrão
|
||
-I <diretorio> Define inclusão(copybooks) de caminhos de procura. (padrão -I./)
|
||
O caminho pode ser um simples diretorio, ou uma lista de diretórios
|
||
separados por um ':'
|
||
-P Gera arquivo de saída listado
|
||
-T <num> <Expande tabs para um número de espacos (padrao T=8)
|
||
-X Arquivo de entrada esta em formato livre X/Open (formato padrao)
|
||
|
||
Exemplo: htcobol -x -F -P prog_fonte.cob
|
||
O exemplo acima o htcobol irá compilar, (-x) criar executavel, (-F) programa
|
||
escrito devera estar no formato fixo(obdecendo as colunas 8 e 72) e (-P) gera
|
||
um arquivo de saida de erros e outras informações com extensão prog_fonte.lis .
|
||
|
||
----------------------------------------------------------------------------------
|
||
|
||
3 - CBL2COB - Conversor automático de Sintaxe
|
||
Para auxiliar na conversão de fontes escritos em outros “sabores” de COBOL,
|
||
considerando que existem algumas diferenças de sintaxe em alguns comandos
|
||
(geralmente causadas pela arquitetura proprietária de certos compiladores),
|
||
foi criada uma ferramentas para corrigir estas diferenças de sintaxe
|
||
automaticamente. Este programa é o CBL2COB, disponível como ferramenta de
|
||
domínio público, desenvolvido pela InfoCont Sistemas Integrados em parceria
|
||
com Hudson Reis. Este conversor, foi criado inicialmente para converter
|
||
diferenças de sintaxe existentes entre o padrão MicroFocus e o TinyCOBOL,
|
||
porém conta hoje com opção para conversão também de fontes COBOL MB,
|
||
desenvolvido por Carlúcio Lopes. Todas estas rotinas foram totalmente
|
||
desenvolvidas em COBOL e, por isso, servem também como exemplos de uso do
|
||
TinyCOBOL. Por este motivo, a adaptação, por exemplo, da rotina CBL2COB para
|
||
outros padrões é bastante simples. Esteja a vontade para realizar as adaptações
|
||
necessárias para realizar a conversão dos seus Sistemas. Os fontes do CBL2COB
|
||
estão disponíveis na pasta C:\TinyCOBOL\Tutorias\CBL2COB.
|
||
|
||
3.1 Alterações realizadas pelo CBL2COB:
|
||
Até o presente momento o CBL2COB faz as seguintes ações:
|
||
|
||
- Adiciona IDENTIFICATION DIVISION se preciso.
|
||
- Adiciona PROGRAM-ID se preciso.
|
||
- Converte conte·do da PROGRAM-ID em min·sculo.
|
||
- Retira clausulas LOCK MODE.
|
||
- Retira clausulas DATA RECORD.
|
||
- Retira clausulas VALUE OF FILE-ID.
|
||
- Acerta caracteres de continuação de linha(simples ou duplos),
|
||
modificando-os de estarem na coluna 9 para a coluna 12.
|
||
- DISPLAY.
|
||
- Substituir clausula DISPLAY AT LINE .. COLUMN .. por DISPLAY AT ....
|
||
- Retirar clausulas BACKGROUND-COLOR, FOREGROUND-COLOR, BELL e PROMPT
|
||
- Substituir parametro AUTO-SKIP por AUTO.
|
||
- ACCEPT.
|
||
- Substituir clausula DISPLAY AT LINE .. COLUMN .. por DISPLAY AT ....
|
||
- Retirar clausulas BACKGROUND-COLOR, FOREGROUND-COLOR e PROMPT
|
||
- Substituir parametro AUTO-SKIP por AUTO.
|
||
- Remover clausula ACCEPT FROM ESCAPE KEY.
|
||
- Insere CRT STATUS IS <VARIAVEL-TECLA>.
|
||
- CALL e CANCEL
|
||
- Transforma o conte·do entre aspas em lowercase
|
||
- Remove funcoes X"AF".
|
||
- Remove funcoes X"91".
|
||
- SELECT.
|
||
- Substitui ASSIGN TO <nome-arquivo> para ASSIGN TO EXTERNAL <nome-arquivo>
|
||
- Substitui ASSIGN TO DISK por ASSIGN TO EXTERNAL <nome-arquivo>
|
||
- Substitui ASSIGN TO PRINTER por ASSIGN TO EXTERNAL printer
|
||
- Substitui "\" por "/" nas strings.
|
||
- MOVE.
|
||
- Retirar "$" nas strings.
|
||
- Substituir "\" por "/" nas strings.
|
||
- DELETE.
|
||
- Remove a cláusula FILE, se usada junto com o DELETE.
|
||
- Pre-processa(abre/fecha) fontes, com o verbo COPY.
|
||
|
||
3.2 Sintaxe de uso:
|
||
cbl2cob -d mf -i programa.cbl -o programa.cob
|
||
A opção "-d mf" indica que estaremos realizando uma conversão de fonte padrão
|
||
MicroFocus. Poderá ser utilizada a opção "-d mb", para COBOL MB.
|
||
A opção "-i" (input) indica o fonte original e a opção "-o" indica o novo
|
||
fonte que deverá ser gerado.
|
||
|
||
----------------------------------------------------------------------------------
|
||
|
||
4 - Tutoriais.
|
||
Para facilitar o uso do TinyCOBOL com todos os seus recursos (Banco de Dados e
|
||
Interface Gráfica) compõe esta instalação os seguintes tutoriais:
|
||
4.1 TCL/TK:
|
||
Disponível na pasta C:\TinyCOBOL\Tutoriais\TCL-TK, contém um pequeno programa de
|
||
cadastro de contatos, incluindo ferramenta de busca, escrito em TCL/TK e integrado
|
||
com o TinyCOBOL. Este programa faz a gravação dos dados em arquivos nativos. O
|
||
arquivo LEIA-ME.TXT traz informações detalhadas sobre o mesmo.
|
||
4.2 PostgreSQL:
|
||
Disponível na pasta C:\TinyCOBOL\Tutoriais\PostgreSQL, contém um pequeno programa
|
||
para cadastro de filiais, que faz acesso ao banco PostgreSQL através de uma rotina
|
||
em C que acessa as APIs do Banco de Dados. O arquivo LEIA-ME.TXT traz informações
|
||
detalhadas sobre o mesmo.
|
||
4.3 Firebird:
|
||
Disponível na pasta C:\TinyCOBOL\Tutoriais\Firebird, contém um pequeno programa
|
||
para cadastro de filiais, que faz acesso ao banco Firebird através de EmbeddebSQL,
|
||
onde as instruções SQL são transcritas diretamente no fonte do programa. O arquivo
|
||
LEIA-ME.TXT traz informações detalhadas sobre o mesmo.
|
||
|
||
----------------------------------------------------------------------------------
|
||
|
||
5 - Dúvidas e Sugestões.
|
||
5.1 Dúvidas, críticas e sugestões envie para:
|
||
* Clube Cobol (cobol@yahoogrupos.com.br): Grupo brasileiro de usuários COBOL
|
||
* Lista Oficial de Desenvolvedores (tiny-cobol-users@lists.sourceforge.net):
|
||
Grupo oficial de desenvolvedores e usuários (em inglês).
|
||
|
||
5.2 Material de apoio TC+TCL (ambiente gráfico) e TC+DDD (depuração).
|
||
Estão disponíveis no grupo de programas TinyCOBOL a documentação escrita por Rildo
|
||
Pragana referentes à integração do TinyCOBOL com TCL/TK e também sobre o uso do
|
||
DDD, ferramenta para depuração que pode ser usada para "animar" os programas escritos
|
||
e compilados em TinyCOBOL.
|
||
|
||
5.3 Informações adicionais sobre TinyCOBOL.
|
||
http://br.tinycobol.org
|
||
http://wiki.tinycobol.org
|
||
|
||
----------------------------------------------------------------------------------
|
||
|
||
6 - Agradecimentos.
|
||
- Rildo Pragana <rildo@pragana.net> pela iniciativa no desenvolvimento do TinyCOBOL;
|
||
- Walter Garrote <gaaw7@hotmail.com> por aceitar o desafio de manter o desenvolvimento
|
||
do compilador;
|
||
- Carlucio Lopes <carsanlo@terra.com.br> por nos auxiliar na criação deste pacote,
|
||
cedendo parte dos tutoriais
|
||
- Demais colaboradores do projeto;
|
||
- A você que está lendo este material, que nos incentiva a manter o trabalho, construindo
|
||
um compilador COBOL cada dia melhor. |