OpenEdge Advanced Business Language - OpenEdge Advanced Business Language

OpenEdge Advanced Business Language (ABL)
OpenEdge logo.png
Desenvolvedor (s) Progress Software Corporation
Versão estável
OpenEdge 12.3 / 20 de outubro de 2020 ; 10 meses atrás ( 2020-10-20 )
Sistema operacional Plataforma cruzada (veja abaixo)
Modelo RDBMS
Licença Proprietário
Local na rede Internet https://www.progress.com/openedge

OpenEdge Advanced Business Language , ou OpenEdge ABL para abreviar, é uma linguagem de desenvolvimento de aplicativos de negócios criada e mantida pela Progress Software Corporation (PSC). A linguagem, normalmente classificada como uma linguagem de programação de quarta geração , usa uma sintaxe semelhante ao inglês para simplificar o desenvolvimento de software. A linguagem era chamada de PROGRESS ou Progress 4GL até a versão 9, mas em 2006 o PSC mudou o nome para OpenEdge Advanced Business Language (OpenEdge ABL) para superar a suposta percepção da indústria de que 4GLs eram menos capazes do que outras linguagens. Um subconjunto da linguagem, chamado SpeedScript , é usado no desenvolvimento de aplicativos da web.

OpenEdge ABL ajuda os desenvolvedores a desenvolver aplicativos, opcionalmente, usando seu próprio banco de dados relacional integrado e ferramenta de programação . Esses aplicativos são portáteis em sistemas de computação e permitem o acesso a várias fontes de dados populares sem ter que aprender os métodos de acesso de dados subjacentes . Isso significa que o usuário final desses produtos pode não ter conhecimento da arquitetura subjacente.

Ao combinar uma linguagem de quarta geração e um banco de dados relacional, o OpenEdge ABL permite o uso do modelo Rapid Application Development (RAD) para o desenvolvimento de software. Um programador e até mesmo usuários finais podem fazer prototipagem rápida usando as ferramentas integradas e GUI do ambiente de desenvolvimento.

OpenEdge pode ser usado para:

  • GUI (interface gráfica do usuário) do Microsoft Windows
  • Programação WWW (UNIX e Windows)
  • CHUI (interface do usuário CHaracter) (UNIX e Windows)
  • Programação de appserver JSON e XML (UNIX e Windows)
  • bem como programação de processos em segundo plano (UNIX e Windows).

História

O Progress 4GL original foi projetado (em 1981) como uma linguagem independente de arquitetura e um sistema de banco de dados integrado que poderia ser usado por não especialistas para desenvolver aplicativos de negócios por pessoas que não eram cientistas da computação, mas tinham conhecimento em seu domínio de negócios. Na época, os aplicativos de negócios eram frequentemente escritos em COBOL (para máquinas como mainframes IBM corporativos) e às vezes em C (para minicomputadores departamentais executando o sistema operacional UNIX). Quando o IBM PC se tornou popular, ele desenvolveu a necessidade de um software comercial que pudesse ser usado nesses e em outros computadores baratos. O sistema Progress foi criado para ser usado em máquinas IBM PC que executam DOS e em uma variedade de computadores que podem executar UNIX.

Sintaxe e semântica

Progress ABL é uma linguagem de programação semelhante ao inglês , fortemente tipada . Embora inicialmente projetada como uma linguagem procedural, a partir da versão 10.1 ela foi aprimorada com elementos de gramática orientada a objetos, que podem ser combinados com o estilo procedural original. Um bloco de código pode ter uma transação com escopo definido para ele, caso em que as alterações do banco de dados serão confirmadas quando ele for concluído. Um erro gerado dentro de tal bloco irá desfazer essas alterações. Esses padrões podem ser substituídos pelo programador.

Os programas simples são executados sem uma interface gráfica do usuário, mas há uma sintaxe para criar uma de forma programática; ou os programadores podem usar as ferramentas fornecidas para construir um.

Exemplos

Olá Mundo

O código ABL a seguir cria uma janela com o texto "Hello, World!" e um botão denominado "OK".

DEFINE VARIABLE w AS HANDLE NO-UNDO.

CREATE WINDOW w ASSIGN 
    WIDTH = 50
    HEIGHT = 5
    MESSAGE-AREA = FALSE
    STATUS-AREA = FALSE.   

CURRENT-WINDOW = w.

DEFINE BUTTON btnOK LABEL "OK" SIZE 12 BY 1.2.
FORM 
    "Hello World!" VIEW-AS TEXT AT COL 20 ROW 2
    btnOK AT COL 20 ROW 4
    WITH FRAME f SIZE 50 BY 5 NO-BOX THREE-D.

VIEW FRAME f.
ENABLE btnOK WITH FRAME f.
WAIT-FOR "CHOOSE" OF btnOK.
DELETE OBJECT w.

Uma caixa de mensagem pode ser usada para obter o mesmo efeito:

MESSAGE "Hello World!"
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

Além disso, você pode usar ERRORe em WARNINGvez de INFOpara alterar os ícones de mensagem.

O programa "Hello, World" mais simples, porém, é este:

DISPLAY "Hello World!".

SELECTEquivalente de SQL

A instrução SQL :

SELECT * FROM customer;

(junto com a conexão do idioma escolhido e os procedimentos de exibição) podem ser expressos em Progress / ABL como:

FOR EACH customer NO-LOCK:
    DISPLAY customer.
END.

A instrução END é opcional em um programa com este nível de simplicidade.

UPDATEEquivalente de SQL

A instrução SQL:

UPDATE customer 
    SET salesman = 'Fred'
    WHERE custno = 14;

(novamente, junto com a conexão do idioma escolhido e os procedimentos de exibição) podem ser expressos em Progress / ABL como:

FOR EACH customer WHERE customer.custno = 14 EXCLUSIVE-LOCK:
    ASSIGN customer.salesman = 'Fred'.
END.

.. (Algumas suposições foram feitas sobre indexação, bloqueio e escopo de transação para manter este exemplo simples.)

O idioma é baseado em registro diferente do conjunto de registros. Em operações SQL funcionam em um conjunto de registros, no ABL, a operação é aplicada a um registro por vez - de forma semelhante ao uso de um cursor em SQL.

Áreas de aplicação

A linguagem é usada em uma ampla variedade de áreas de aplicação, alguns exemplos:

  • Originação de empréstimos em bancos dos EUA
  • Sistemas de reserva de aluguel de veículos
  • Distribuição de atacado
  • Sistemas de Armazém
  • Sistemas de Transporte
  • Expedição da Força de Serviço Comercial
  • Sistemas de cartão de segurança
  • Sistemas de jogos (pense em Las Vegas, não em vídeo)
  • Sistemas de ponto de venda de varejo (notavelmente, o de Micro Center )

Notas

  1. ^ Campbell, John, Programmer's Progress, um guia para a linguagem do progresso. software White Star, 1991
  2. ^ Salvador Vinals, Apresentando OpenEdge Advanced Business Language (ABL), whitepaper PSC, 2007
  3. ^ Crawford, G. WebSpeed ​​Complete , Innov8 Computer Solutions, ISBN  0-9718679-0-9

Referências

links externos