Progress 4GL

Progress 4GL é uma linguagem de programação de quarta geração, daí a sigla 4GL, baseada em eventos e proprietária. Ela foi desenvolvida pela empresa Progress Software Corporation em 1984, inicialmente para o sistema operacional (y) Positivo com uso em mainframes para processamento de grande volume de dados, como alternativa para outras linguagens à época como Cobol, Adabas, Natural, Clipper, CORO, etc., pois elas exigiam que o programador escrevesse um código muito extenso para qualquer aplicação. Também, uma alternativa como banco de dados relacional de alto desempenho e segurança, embutido em um único produto. A Progress Corporation tem sua sede em Bedford, Massachusetts USA, com filiais em diversos países. No Brasil sua representante é a Progress do Brasil/SP. Um dos maiores atrativos da linguagem Progress é sua portabilidade e independência de plataforma, ela funciona em praticamente todos os sistemas operacionais existentes, como: MS-DOS, Windows 3x,95,NT, UNIX, OS/2, Novell, VMS, Motif, Xenix, CTOS entre diversos outros, isso utilizando o mesmo código fonte.

A integração entre linguagem e banco de dados fazem da Progress uma excelente ferramenta para construção de qualquer aplicação comercial. Uma das maiores desvantagens de progress são as camadas de desenvolvimento - regras de negócios, dados e interface estão totalmente acopladas. A atualização e distribuição dos aplicativos é bastante simplificada, um sistema pode ser totalmente centralizado para acesso de vários clientes simultâneos, usando o conceito de sistema "stand-alone", e atualizado a qualquer tempo, parcialmente ou completamente sem gerar qualquer erro ou necessitar de uma parada momentanea do sistema.

A linguagem Progress é utilizada, basicamente, para desenvolvimento de sistemas de gestão empresarial (ERPs), que são sistemas integrados para controle de uma empresa. É principalmente dirigida às corporações de médio e grande porte, devido o alto custo financeiro de suas licenças.


Exemplo de um programa em Progress:


Exibe n números perfeitos

   DISP 'Hello World'.
   MESSAGE' 'Hello World'.
   DEFINE VARIABLE i             AS INTEGER INIT 0 NO-UNDO.
   DEFINE VARIABLE j             AS INTEGER INIT 0 NO-UNDO.
   DEFINE VARIABLE soma          AS INTEGER INIT 0 NO-UNDO.
   DEFINE VARIABLE num-achados   AS INTEGER INIT 1 NO-UNDO.
   DEFINE VARIABLE qtd-procurada AS INTEGER INIT 0 NO-UNDO.
   DEFINE VARIABLE num-perf      AS INTEGER INIT 0 NO-UNDO.
   FORM num-perf
   HELP "Digite um número"
   WITH 1 DOWN 1 COL ROW 5 CENTER FRAME numero.
   
   UPDATE num-perf WITH FRAME numero.
   ASSIGN qtd-procurada = num-perf
          i             = 0.
   
   DO WHILE (num-achados <= qtd-procurada):
       ASSIGN i = i + 2.
       IF (i MOD 10 = 6 OR 
           i MOD 10 = 8) 
       THEN DO:
               ASSIGN soma = 0
                      j    = 1.    
               DO WHILE (j <= (i / 2)):
                  IF (i MOD j = 0) 
                  THEN ASSIGN soma = soma + j
                              j    = j + 1.
               END.
               IF (i = soma) 
               THEN DO:
                      MESSAGE i ' é Numero Perfeito'
                              VIEW-AS ALERT-BOX INFO BUTTONS OK.
                      ASSIGN num-achados = num-achados + 1.
                    END.
            END.
   END.

Ligações externas