Linguagem de programação de quarta geração - Fourth-generation programming language

Uma linguagem de programação de quarta geração ( 4GL ) é qualquer linguagem de programação de computador que pertence a uma classe de linguagens concebidas como um avanço em relação às linguagens de programação de terceira geração (3GL). Cada uma das gerações de linguagens de programação visa fornecer um nível mais alto de abstração dos detalhes internos do hardware do computador , tornando a linguagem mais amigável ao programador , poderosa e versátil. Embora a definição de 4GL tenha mudado com o tempo, ela pode ser tipificada operando mais com grandes coleções de informações de uma só vez, em vez de focar apenas em bits e bytes . As linguagens que afirmam ser 4GL podem incluir suporte para gerenciamento de banco de dados , geração de relatórios , otimização matemática , desenvolvimento de GUI ou desenvolvimento web . Alguns pesquisadores afirmam que 4GLs são um subconjunto de linguagens de domínio específico .

O conceito de 4GL foi desenvolvido da década de 1970 até a década de 1990, sobrepondo a maior parte do desenvolvimento de 3GL, com 4GLs identificadas como linguagens "não procedimentais" ou "geradoras de programas", em contraste com 3GLs sendo linguagens algorítmicas ou procedurais. Enquanto 3GLs como C , C ++ , C # , Java e JavaScript permanecem populares para uma ampla variedade de usos, 4GLs, conforme definido originalmente, encontraram usos focados em bancos de dados, relatórios e sites. Alguns 3GLs avançados, como Python , Ruby e Perl combinam algumas habilidades 4GL em um ambiente 3GL de uso geral, e bibliotecas com recursos semelhantes a 4GL foram desenvolvidas como complementos para os 3GLs mais populares, produzindo linguagens que são uma mistura de 3GL e 4GL, borrando a distinção.

Nas décadas de 1980 e 1990, houve esforços para desenvolver linguagens de programação de quinta geração (5GL).

História

Embora usado anteriormente em artigos e discussões, o termo 4GL foi usado pela primeira vez formalmente por James Martin em seu livro de 1981, Applications Development Without Programmers, para se referir a linguagens de especificação de alto nível e não procedurais . De alguma forma primitiva, os primeiros 4GLs foram incluídos no produto Informatics MARK-IV (1967) e no Sperry 's MAPPER (uso interno em 1969, lançamento em 1979).

As motivações para o início da '4GL' e o interesse contínuo são várias. O termo pode se aplicar a um grande conjunto de produtos de software. Também pode ser aplicado a uma abordagem que busca maiores propriedades semânticas e poder de implementação. Assim como a 3GL ofereceu maior poder ao programador, também a 4GL abriu o ambiente de desenvolvimento para uma população mais ampla.

O esquema de entrada inicial para o 4GL suportava a entrada de dados dentro do limite de 72 caracteres do cartão perfurado (8 bytes usados ​​para sequenciamento) onde a etiqueta de um cartão identificaria o tipo ou função. Com o uso criterioso de algumas cartas, o baralho 4GL poderia oferecer uma ampla variedade de capacidade de processamento e relatório, enquanto a funcionalidade equivalente codificada em um 3GL poderia incluir, talvez, uma caixa inteira ou mais de cartas .

O formato de 72 caracteres continuou por um tempo enquanto o hardware progredia para memória e interfaces de terminal maiores. Mesmo com suas limitações, essa abordagem oferece suporte a aplicativos altamente sofisticados.

À medida que as interfaces melhoravam e permitiam comprimentos de instrução mais longos e manipulação de entrada orientada por gramática, maior poder se seguia. Um exemplo disso é descrito na página do Nomad .

Outro exemplo do poder do Nomad é ilustrado por Nicholas Rawlings em seus comentários para o Computer History Museum sobre NCSS (ver citação abaixo). Ele relata que James Martin pediu a Rawlings uma solução Nomad para um problema padrão que Martin chamou de Problema do Engenheiro : "dê aumentos de 6% para engenheiros cujas classificações de trabalho tivessem uma média de 7 ou melhor." Martin forneceu uma "dúzia de páginas de COBOL e, em seguida, apenas uma ou duas páginas de Mark IV , da Informática ". Rawlings ofereceu a seguinte declaração única, executando uma operação de ajuste de cada vez ...

O desenvolvimento do 4GL foi influenciado por vários fatores, com as restrições de hardware e sistema operacional tendo um grande peso. Quando o 4GL foi introduzido pela primeira vez, uma mistura díspar de hardware e sistemas operacionais exigia suporte de desenvolvimento de aplicativo customizado que era específico para o sistema, a fim de garantir as vendas. Um exemplo é o sistema MAPPER desenvolvido pela Sperry . Embora tenha raízes no início, o sistema provou ser bem-sucedido em muitos aplicativos e foi portado para plataformas modernas. A última variante está incorporada na oferta BIS da Unisys . MARK-IV agora é conhecido como VISION: BUILDER e é oferecido pela Computer Associates .

A ferrovia Santa Fe usou o MAPPER para desenvolver um sistema, em um projeto que foi um dos primeiros exemplos de 4GL, prototipagem rápida e programação por usuários . A ideia era que era mais fácil ensinar especialistas em ferrovias a usar o MAPPER do que ensinar aos programadores as "complexidades das operações ferroviárias".

Uma das primeiras linguagens (e portáteis) que tinha propriedades 4GL foi Ramis, desenvolvida por Gerald C. Cohen na Mathematica , uma empresa de software matemático. Cohen deixou o Mathematica e fundou a Information Builders para criar um 4GL orientado a relatórios semelhante, chamado FOCUS .

Os tipos 4GL posteriores estão vinculados a um sistema de banco de dados e são muito diferentes dos tipos anteriores no uso de técnicas e recursos que resultaram da melhoria geral da computação com o tempo.

Uma reviravolta interessante na cena 4GL é perceber que as interfaces gráficas e o raciocínio relacionado feito pelo usuário formam uma 'linguagem' que é mal compreendida.

Tipos

Existem vários tipos diferentes de 4GLs:

  • Programação baseada em tabelas (sem código), geralmente em execução com uma estrutura de tempo de execução e bibliotecas. Em vez de usar código, o desenvolvedor define sua lógica selecionando uma operação em uma lista predefinida de comandos de manipulação de memória ou tabela de dados. Em outras palavras, em vez de codificação, o desenvolvedor usa a programação de algoritmo baseada em tabelas (veja também as tabelas de controle que podem ser usadas para este propósito). Um bom exemplo desse tipo de linguagem 4GL é o PowerBuilder . Esses tipos de ferramentas podem ser usados ​​para o desenvolvimento de aplicativos de negócios geralmente consistindo em um pacote que permite a manipulação de dados de negócios e relatórios, portanto, eles vêm com telas de GUI e editores de relatórios. Eles geralmente oferecem integração com DLLs de nível inferior geradas a partir de um 3GL típico para quando surgir a necessidade de mais operações específicas de hardware / sistema operacional.
  • As linguagens de programação geradoras de relatórios obtêm uma descrição do formato dos dados e do relatório a ser gerado e, a partir disso, geram o relatório necessário diretamente ou geram um programa para gerar o relatório. Veja também RPG
  • Da mesma forma, os geradores de formulários gerenciam as interações online com os usuários do sistema de aplicativos ou geram programas para fazer isso.
  • 4GLs mais ambiciosos (às vezes chamados de ambientes de quarta geração ) tentam gerar automaticamente sistemas inteiros a partir das saídas de ferramentas CASE , especificações de telas e relatórios e, possivelmente, também a especificação de alguma lógica de processamento adicional.
  • 4GLs de gerenciamento de dados , como SAS , SPSS e Stata, fornecem comandos de codificação sofisticados para manipulação de dados, remodelagem de arquivos, seleção de casos e documentação de dados na preparação de dados para análises estatísticas e relatórios.
  • Linguagens chamadas "XTalk", desenvolvidas inicialmente com o Hypercard da Apple em 1987. Hypercard foi o progenitor de programas mais modernos e poderosos, como SuperCard, Toolbook e LiveCode.

Alguns 4GLs possuem ferramentas integradas que permitem a fácil especificação de todas as informações necessárias:

Ambientes de baixo código

No século XXI, os sistemas 4GL surgiram como ambientes ou plataformas de "baixo código" para o problema de desenvolvimento rápido de aplicativos em curtos períodos de tempo. Os fornecedores costumam fornecer sistemas de amostra, como CRM, gerenciamento de contratos e rastreamento de bugs, a partir dos quais o desenvolvimento pode ocorrer com pouca programação.

Exemplos

Uso geral / versátil

Linguagens de consulta de banco de dados

Geradores de relatórios

Extrair dados de arquivos ou banco de dados para criar relatórios em uma ampla variedade de formatos é feito pelas ferramentas do gerador de relatórios.

Manipulação de dados, análise e linguagens de relatórios

Criadores de software

Otimização matemática

Desenvolvimento de aplicativo GUI baseado em banco de dados

Baixo código / nenhuma plataforma de desenvolvimento de código

Pintores e geradores de tela

Linguagens de desenvolvimento web

Veja também

Referências