Informix-4GL

O Informix 4gl é uma linguagem de quarta geração desenvolvida pela Informix em 1986 e tem-se mantido bastante estável desde então. A Informix Corporation foi adquirida pela IBM.

Informix 4GL
Paradigma programação genérica
Surgido em 1986
Criado por Informix corporation
Principais implementações cfgl, fglpc, 4js, Querix, Aubit4GL
Dialetos: Informix, 4js

O Informix-4GL (4GL) foi uma das linguagens mais bem sucedidas nos anos 80 e 90. Muitos milhões de linhas de código são ainda mantidos e muitos sistemas críticos de negócio dependem ainda de programas desenvolvidos em 4GL. Infelizmente a Informix não foi capaz de providenciar um caminho de evolução para a linguagem, apesar de ter tentado por duas vezes, primeiro com o 4GL for Windows e depois com o New Era. Após a aquisição pela IBM, apareceu mais um candidato a substituto - o EGL - mas tem tardado a impor-se.

Devido ao facto de o 4GL continuar a gerar interfaces em modo alfanumérico é visto, com frequência, como um "sistema legado" (legacy system). Devido a diversas limitações técnicas, até a versao 7.31 o 4GL não integra facilmente em ambientes web ou em arquitecturas elaboradas com Java ou .Net, o que prejudica a sua utilização em projectos mais actuais. Apesar disto, muitas organizações continuam a usar o 4GL nos seus sistemas, provavelmente devido ao facto de ser uma linguagem muito fácil de aprender e com um ciclo de desenvolvimento-teste-produção extremamente rápido. Mas a partir da versão 7.50 a IBM incluiu recursos de web services no 4GL, além disso você pode personaliza-lo através de funções escritas em C (existem empresas que implementaram seu próprio gerenciador de socket/tcp no 4GL).

Diversas alternativas existem hoje ao compilador 4GL da IBM. As mais conhecidas são o 4js, o Querix e o projecto open-source Aubit4GL. Todas elas resolvem o problema do interface alfanumérico e possibilitam a utilização das aplicações em modo gráfico.

Está disponível online um manual de 4GL em Português.

Exemplos de código

[editar | editar código-fonte]

Exemplo de main com menu

[editar | editar código-fonte]

O main é onde o programa inicia.

main     define codigo smallint        open window Janela at 10,5 with 22 rows, 78 columns                                     attribute (border)                                                               let codigo = funcao_pega_codigo()     menu 'Menu'        command key ('I') 'Incluir' 'Chama a funcao Incluir'          call funcao_incluir()        command key ('A') 'Alterar' 'Altera o codigo carregado'          call funcao_incluir(codigo)        command key ('X') 'eXcluir' 'Exclui o Fulano da Silva'          call funcao_excluir('Fulano da Silva')        command key ('E') 'Encerra' 'Sai do Menu'          exit menu     end menu     close window Janela                                                           end main 

Exemplo de funcao

[editar | editar código-fonte]
function funcao_exemplo()     define l_status   smallint          ,mensagem char(100)    define record_variaveis record           variaveis1    like NomeTabela.CampoTabela          ,variaveis2    char(300)          ,variaveis3    smallint    end record        initialize record_variaveis to null        let l_status = true    let record_variaveis.variaveis3 = 5521        call funcao_retono(record_variaveis.variaveis3)       returning record_variaveis.variaveis1                ,record_variaveis.variaveis2                ,l_status        if l_status = true then       let mensagem = 'Funcao executada com sucesso'    else       let mensagem = 'Funcao retornou erro'    end if     return mensagem  end function 

Ligações externas

[editar | editar código-fonte]