COBOL para LINUX

Quem não deseja desenvolver aplicações robustas, rápidas, seguras, multiplataforma e com um visual elegante (mesmo com interface à caracter), sem ter que fazer alto investimento? A resposta está na utilização do Micro Focus Cobol 3.2. Apesar de estar com o suporte descontinuado, talvez seja o compilador cobol mais utilizado por desenvolvedores brasileiros, ou até internacionais.

Sua portabilidade entre ambientes operacionais (MS-DOS, OS/2, Novell, Windows 9x/NT e Unix) permite ao desenvolvedor portar aplicações destas plataformas para o Linux sem o menor esforço. Contempla os padrões ANSI/74 e ANSI/85 além de compatibilidade com outros compiladores tais como: IBM Mainframe, Microsoft, RM e DG ICOBOL. A base de dados pode ser escolhida entre poderosos bancos de dados via SQL, também já disponíveis no Linux (Informix, Oracle, Sybase e etc) ou o sistema nativo de arquivamento, seguro e de rápido acesso que não tem nenhum custo adicional para o desenvolvedor ou usuário.

O pacote MF Cobol 3.2 inclui, dentre outras, algumas ferramentas de auxílio ao desenvolvedor que poderíamos destacar:

Adiscf – Configuração do compilador quanto a dialeto e comportamento das funções de accept e display.

Keybcf – Configuração de comportamento do teclado.

Animator – depurador de programas on-line que permite inserir breakpoints (fixos ou condicionais), examinar e alterar conteúdo de variáveis, inserir comandos em tempo de execução e muito mais.

Biblioteca de sub-rotinas – grande número de rotinas para tratamento de teclado, video, mouse, impressora, diretórios, arquivos, acesso à linha de comando e etc. Todas as rotinas são chamadas por um comando call inserido no fonte cobol.

Hyhelp – Manual do desenvolvedor "on line".

A instalação do MF Cobol 3.2 no Linux requer a instalação do módulo de compatibilidade binária iBCS para emulação do ambiente Unix, arquivos fonte terminfo (emulação de terminais) convertidos do Unix através do utilitário infocmp, ou o correspondente já compilado no Linux e os arquivos de instalação distribuídos para o Unix.
O uso do Linux em servidores de redes, utilizando o Samba ou puramente o protocolo TCP/IP, substituindo servidores Novell e NT com eficiência, segurança e estabilidade; e principalmente com custos reduzidos vem despertando nos desenvolvedores e usuários finais uma grande expectativa. Os custos ficam ainda mais reduzidos quando substituímos as estações Win9x (licenças e mais licenças) por estações com o próprio Linux através de login’s remotos e uso de ferramentas como o StarOffice, e outras, para automação de escritório. E aqueles 486 antigos, guardados e sem uso? Podem ser ressuscitados para uso naquelas aplicações de missão crítica com interface à caracter. A utilização do cobol no Linux, dispensa o uso de runtimes (normalmente pagos) em estações Linux ou Win9x, através de login’s remotos em estações Linux e netterm em estações Win 9x.
Vejam os dois exemplos de telas de aplicativos cobol (com interface à caracter), uma para compartilhar o ambiente do KDE com outros aplicativos, e outra somente à caracter para os aplicativos de missão crítica.

Passos para a instalação:

1. Emular Unix:

Carregar o módulo iBCS (compatibilidade binária)
# insmod iBCS
Incluir esta linha no arquivo rc.local do diretório /etc/rc.d

2. Fuso Horário:

Se você, na instalação do Linux, configurou o fuso horário (ex: BRASIL LESTE) provavelmente terá uma diferença de horário de duas horas na sua aplicação Cobol. Para resolver este contratempo execute timeconfig escolha a hora para GMT, e na lista de países selecione UTC. Isto fará com que o Linux passe a pegar o horário da BIOS como o Cobol. Caso seja necessário alterar a hora, utilize clock -w para atualizar a BIOS.

3. Variáveis de ambiente:

Alterar em /etc/profile as seguintes variáveis de ambiente, se você instalou a versão do Linux em português:

# Variáveis para idioma
LANG=english_us.ascii
LC_CTYPE=ISO_10646
export LANG LC_CTYPE

# Variáveis para o MF Cobol 3.x
COBDIR=/usr/lib/cobol (indica o diretório de residência do cobol)
COBSW=-i+F (-i = inibe o cancelamento por ctrl-c; +F = habilita checagem de campos numéricos)
COBCPY=:$HOME/fds (indica o diretório dos arquivos copy. $HOME é o diretório de login)
COBPATH=:$HOME/bin (indica o diretório dos arquivos executáveis. $HOME é o diretório de login)
COBTERMINFO = /usr/lib/cobol/terminfo (indica o diretório dos arquivos terminfo. )
export COBDIR COBSW COBCPY COBPATH COBTERMINFO

O diretório dos arquivos terminfo específicos para o MF Cobol devem residir em diretório diferente dos arquivos padrão do Linux, para não afetar a execução de outras aplicações que não foram escritas em Cobol.
Faça um novo login para que as variáveis tenham efeito durante a instalação do compilador propriamente dito.

4. Instalação do MF Cobol 3.2:

Atenção: Existe incompatibilidade entre o utilitário tar do Unix e o do Linux, quanto ao tratamento de arquivos multi-volume. Se for utilizar um conjunto original de disquetes gravados no Unix, este possui dois arquivos partidos em dois disquetes. Estes arquivos devem ser concatenados antes da instalação no Linux.

4.1. Criar diretório /usr/lib/cobol

4.2. Baixar todos os arquivos de instalação neste diretório.

4.3. Executar o script install (# sh install) utilizando as opções default.

4.4. Copiar os arquivos fonte terminfo para /usr/lib/cobol/terminfo

4.5. Compilar os arquivos fonte terminfo com o utilitário mftic. Serão criados diretórios específicos para cada fonte.

Os arquivos fonte terminfo específicos devem ser convertidos diretamente dos arquivos originais do Unix através do utilitário infocmp e residir em diretório diferente do padrão do Linux.

5. Caracteres semi-gráficos:
5.1 Para as distribuições: Conectiva 3.0, Red Hat 5.0 e 5.2:
Alterar a variável SYSFONT=cp850-8x16 no arquivo /etc/sysconfig/i18n

5.2 Para as distribuições: Conectiva 4.0 e 4.2, Mandrake 6.0 e 6.1, Red Hat 6.0 e 6.1 e Caldera Open Linux 2.2:

Incluir no arquivo /etc/rc.d/rc.local (genérico para todo o sistema) ou no arquivo /etc/profile, os seguintes comandos, específicamente nesta ordem:

setfont /usr/lib/kbd/consolefonts/viscii10-8x16.psf.gz 2>null
setfont /usr/lib/kbd/consolefonts/tcvn8x16.psf.gz 2>null;

Colaboradores:

Alcides Junqueira
Avanço Informática (MG)

Alexandre C Souza
Borborema-Imperial (PE)

Cesar
Siens – Engenharia de Sistemas (PR)

Dênio dos Santos
Avanço Informática (MG)

Erik Brito e Silva
Consultor independente (MG)

Fernado Scheid
Unitech (MG)

José Geraldo Masson Barbosa
Masson Aplicativos Ltda (MG)

Weliton José da Silva
Infokeep (MG)

José Geraldo Masson Barbosa