                   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 referncia no aprendizado e uso 
     do TinyCOBOL em ambiente Windows, trazendo informaes objetivas para 
     os primeiros passos e tambm tutoriais para o uso avanado.

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".
----------------------------------------------------------------------------------

Contedo
--------
1 - O que  o TinyCOBOL (TC)
2 - Como compilar no TinyCOBOL
3 - CBL2COB - Conversor automtico de Sintaxe
4 - Tutoriais
5 - Dvidas e Sugestes.
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, no  
    necessrio pagar para obter suas verses. Para garantir a sua liberdade, o 
    TinyCOBOL  licenciado dentro dos termos da GNU  General Public Licence, o 
    que significa que seu cdigo fonte  livremente distribudo e disponvel em 
    domnio pblico. 
    Ele  totalmente baseado no padro ANSI 85 e est disponvel para arquitetura 
    Intel(IA32) ou processadores compatveis nas seguintes plataformas:
    * BeOS
    * FreeBSD
    * Linux
    * Windows
    Apesar de ser um projeto internacional, possui muitas informaes em 
    portugus, indispensveis para os primeiros passos no compilador. Estas 
    informaes podero 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 esto reunidas inmeras informaes sobre 
    instalao, configurao, uso e outros. Qualquer suporte adicional poder ser 
    obtido atravs do Clube Cobol e tambm atravs da lista de discusso 
    internacional, com participao dos desenvolvedores. 
    Atualmente, o TinyCOBOL vem sendo desenvolvido por Walter Garrote, brasileiro
    de Goinia - GO. 
    Participe do desenvolvimento deste grande compilador, auxiliando no patrocnio
    do projeto. Para maiores informaes 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 compilao se d por meio de
    um comando de disparo, que no caso do TinyCOBOL  o HTCOBOL. O HT no incio do 
    comando  herana do HandTerm, hardware criado pelo Rildo Pragana para onde foi
    desenvolvido o TinyCOBOL.
    A sintaxe bsica de compilao  a seguinte:

    htcobol [opes] programa_fonte

    Opes especificas do Compilador:
    -h             Mostra ajuda
    -a             Cria biblioteca esttica; pre-processa, compila, assembla e arquiva
    -B <modo>      modo especfico para aglutinao (esttica/dinmica)
    -c             Compilao para um mdulo de objeto estaticamente linkado
    -e <nome>      Especifica o ponto de entrada (primeiro programa a executar)
    -E             Sada do preprocessador para sada padro apenas; no compila,
                   assembla ou linka
    -g             Gera sada de debug de compilao (para uso do "animator" DDD).
    -l <arquivo>   Adiciona biblioteca na linkedio
    -L <diretorio> Adiciona diretrio ao caminho de procura de bibliotecas
    -m <arquivo>   Cria biblioteca dinmica; pre-processa, compila, assembla e linka
    -M <opes>    Especifica opo para identificao de programa principal(auto|first|none)
    -n             No executa nenhum comando, deve mostrar a compilao
    -o <arquivo>   Especifica nome do executvel (padro de entrada x extenso)
    -S             Preprocessa, compila(gera codigo assembler) somente; no assembla ou 
                   linka
    -v             Gera sada do compilador verbosa
    -V             Mostra informaes da versao do compilador e sai
    -Wl,<opcoes>   Passar opes separadas por virgula ao linkeditor
    -x             Compilacao para criar um executvel
    -z             Gera sada do compilador verbosa
    Opcoes especficas do COBOL:
    -C             Faz todas as chamadas dinmicas COBOL
    -D             Inclui linhas de debug no fonte
    -F             Fonte de entrada esta em formato de coluna fixa padro
    -I <diretorio> Define incluso(copybooks) de caminhos de procura. (padro -I./)
                   O caminho pode ser um simples diretorio, ou uma lista de diretrios
                   separados por um ':'
    -P             Gera arquivo de sada listado
    -T <num>       <Expande tabs para um nmero 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 informaes com extenso prog_fonte.lis .  

----------------------------------------------------------------------------------

3 - CBL2COB - Conversor automtico de Sintaxe
    Para auxiliar na converso de fontes escritos em outros sabores de COBOL, 
    considerando que existem algumas diferenas de sintaxe em alguns comandos 
    (geralmente causadas pela arquitetura proprietria de certos compiladores), 
    foi criada uma ferramentas para corrigir estas diferenas de sintaxe 
    automaticamente. Este programa  o CBL2COB, disponvel como ferramenta de 
    domnio pblico, desenvolvido pela InfoCont Sistemas Integrados em parceria 
    com Hudson Reis. Este conversor, foi criado inicialmente para converter 
    diferenas de sintaxe existentes entre o padro MicroFocus e o TinyCOBOL, 
    porm conta hoje com opo para converso tambm de fontes COBOL MB, 
    desenvolvido por Carlcio Lopes. Todas estas rotinas foram totalmente 
    desenvolvidas em COBOL e, por isso, servem tambm como exemplos de uso do 
    TinyCOBOL. Por este motivo, a adaptao, por exemplo, da rotina CBL2COB para 
    outros padres  bastante simples. Esteja a vontade para realizar as adaptaes
    necessrias para realizar a converso dos seus Sistemas. Os fontes do CBL2COB
    esto disponveis na pasta C:\TinyCOBOL\Tutorias\CBL2COB.

3.1 Alteraes realizadas pelo CBL2COB:
    At o presente momento o CBL2COB faz as seguintes aes:

    - Adiciona IDENTIFICATION DIVISION se preciso.
    - Adiciona PROGRAM-ID se preciso.
    - Converte contedo da PROGRAM-ID em minsculo.
    - Retira clausulas LOCK MODE.
    - Retira clausulas DATA RECORD.
    - Retira clausulas VALUE OF FILE-ID.
    - Acerta caracteres de continuao 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 contedo 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 clusula 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 opo "-d mf" indica que estaremos realizando uma converso de fonte padro
    MicroFocus. Poder ser utilizada a opo "-d mb", para COBOL MB. 
    A opo "-i" (input) indica o fonte original e a opo "-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 Grfica) compe esta instalao os seguintes tutoriais:
4.1 TCL/TK: 
    Disponvel na pasta C:\TinyCOBOL\Tutoriais\TCL-TK, contm um pequeno programa de
    cadastro de contatos, incluindo ferramenta de busca, escrito em TCL/TK e integrado
    com o TinyCOBOL. Este programa faz a gravao dos dados em arquivos nativos. O 
    arquivo LEIA-ME.TXT traz informaes detalhadas sobre o mesmo.
4.2 PostgreSQL:
    Disponvel na pasta C:\TinyCOBOL\Tutoriais\PostgreSQL, contm um pequeno programa
    para cadastro de filiais, que faz acesso ao banco PostgreSQL atravs de uma rotina
    em C que acessa as APIs do Banco de Dados. O arquivo LEIA-ME.TXT traz informaes
    detalhadas sobre o mesmo.
4.3 Firebird:
    Disponvel na pasta C:\TinyCOBOL\Tutoriais\Firebird, contm um pequeno programa
    para cadastro de filiais, que faz acesso ao banco Firebird atravs de EmbeddebSQL,
    onde as instrues SQL so transcritas diretamente no fonte do programa. O arquivo
    LEIA-ME.TXT traz informaes detalhadas sobre o mesmo.

----------------------------------------------------------------------------------

5 - Dvidas e Sugestes.
5.1 Dvidas, crticas e sugestes envie para:
    * Clube Cobol (cobol@yahoogrupos.com.br): Grupo brasileiro de usurios COBOL
    * Lista Oficial de Desenvolvedores (tiny-cobol-users@lists.sourceforge.net):
      Grupo oficial de desenvolvedores e usurios (em ingls).

5.2 Material de apoio TC+TCL (ambiente grfico) e TC+DDD (depurao).
    Esto disponveis no grupo de programas TinyCOBOL a documentao escrita por Rildo
    Pragana referentes  integrao do TinyCOBOL com TCL/TK e tambm sobre o uso do 
    DDD, ferramenta para depurao que pode ser usada para "animar" os programas escritos 
    e compilados em TinyCOBOL.

5.3 Informaes 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 criao 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.