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.

Histórico

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

Exemplo de main com menu 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

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 Página oficial da IBM Informix

Categoria:Linguagens de programação