tinycobol/doc/TinyCOBOL.txt

231 lines
12 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.