Informix-4GL

linguagem de programação

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 editar

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

Exemplo de main com menu editar

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

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