Clarion (linguagem de programação) - Clarion (programming language)

Clarion
Paradigmas Imperativo , estruturado , orientado a objetos
Família Pascal
Desenvolvedor Jensen & Partners International (JPI), Clarion International, SoftVelocity
Apareceu pela primeira vez Abril de 1986 ; 35 anos atrás ( 1986-04 )
Versão estável
11 / outubro de 2018 ; 3 anos atrás ( 2018-10 )
Plataforma IA-32
SO DOS , Windows
Licença Proprietário
Local na rede Internet www .softvelocity .com

Clarion é uma linguagem de programação comercial, proprietária, de quarta geração (4GL), multiparadigma , linguagem de programação e ambiente de desenvolvimento integrado (IDE) da SoftVelocity usada para programar aplicativos de banco de dados. É compatível com o método de acesso sequencial indexado ( ISAM ), Structured Query Language ( SQL ) e métodos de acesso a dados ActiveX Data Objects (ADO), lê e grava vários formatos de banco de dados de desktop de arquivo simples, incluindo ASCII , valores separados por vírgula (CSV), DOS (binário), FoxPro , Clipper , dBase e alguns bancos de dados relacionais via ODBC , Microsoft SQL Server , Sybase SQL Anywhere e Oracle Database através do uso de drivers de banco de dados nativos acelerados e XML , Clarion pode ser usado para saída em HTML , XML , texto simples e Portable Document Format ( PDF ), entre outros.

O ambiente de desenvolvimento (IDE) Clarion é executado na linguagem Clarion. O IDE fornece recursos de geração de código por meio de um sistema de modelos que permite aos programadores descrever o programa a partir de um nível abstrato superior às instruções de código. O gerador então transforma esse nível superior em código, que por sua vez é compilado e vinculado usando um compilador e vinculador normal . Essa camada de geração às vezes é chamada de programação 4GL. Usar a camada de geração é opcional. É possível criar programas totalmente no nível de código (a chamada camada 3GL), contornando todos os recursos de geração de código.

Se os modelos são usados ​​para gerar código, os programadores podem injetar seu próprio código no código gerado para alterar ou estender as funções oferecidas pela camada de modelo. Este processo de incorporação de código pode ser feito enquanto visualiza o código gerado circundante. Essa combinação de código de modelo e código gerado permite que as configurações do modelo sejam atualizadas e o código regenerado, sem perda do código incorporado.

Os modelos (a partir dos quais o código é gerado) são fornecidos na forma de código-fonte e os desenvolvedores são livres para criar seus próprios modelos. Muitos modelos foram escritos por vários desenvolvedores: alguns são oferecidos como complementos comerciais e outros são gratuitos.

Existem três produtos Clarion principais: Professional Edition, Enterprise Edition e .NET.

História

O primeiro lançamento da linguagem Clarion foi um produto DOS chamado Clarion 1.0 e foi lançado pela primeira vez em abril de 1986. O Clarion foi criado por Bruce Barrington, um dos fundadores da empresa de saúde "HBO & Company" (posteriormente adquirida pela McKesson Corporation ) e uma pequena equipe de desenvolvedores. O objetivo de Barrington era criar uma linguagem que fosse compacta e expressiva e maximizasse o uso da tela mapeada por memória do IBM PC criando um designer de tela. A versão 1 produziu o pseudocódigo ; a versão inicial incluía um designer de tela, um intérprete, um editor e um depurador. Inicialmente, ele suportava bancos de dados compostos de arquivos DAT, que era o formato de arquivo ISAM proprietário da Clarion. Bruce Barrington formou a Barrington Systems e lançou a versão 1.0.

O Clarion 1.0 exigia o uso de um dongle , em um momento em que o sentimento da indústria estava se voltando contra os dongles. Isso foi compensado pela capacidade de criar aplicativos livres de royalties. O dongle foi omitido na versão 1.1.

Naquela época, uma versão ainda mais básica foi vendida. Chamado de Personal Developer, ele limitava estritamente o que um usuário poderia fazer, mas era adequado para aplicativos de banco de dados muito básicos. Custou muito menos do que o Professional Developer 1.x.

A versão 2.0, lançada em maio de 1988, foi denominada Clarion Professional Developer (CPD) e incluiu um componente denominado Designer, que incorporou um dicionário de dados. O CPD gerou o código Clarion com base no conteúdo desse dicionário e em um modelo denominado "arquivo de modelo". Como o arquivo de modelo era um arquivo de texto, ele poderia ser modificado (de maneiras limitadas) para criar um código personalizado. O arquivo do modelo foi implementado com o paradigma "navegar e formar", onde os dados são inicialmente exibidos para o usuário em caixa de listagem, e a atualização é feita por meio de um formulário chamado através de botões associados à lista. O Designer criou todo o código CRUD (criar, ler, atualizar, excluir) essencial, e os desenvolvedores podem aprimorar as funções inserindo código em pontos especificados no código gerado ou codificando novos procedimentos manualmente. O Clarion Professional Developer também introduziu os Módulos de Extensão de Linguagem (LEMs), que podem estender a linguagem usando módulos compilados em outras linguagens que foram construídos para o formato LEM. A Clarion Software e muitos desenvolvedores de ferramentas de terceiros criaram LEMs para todos os fins, incluindo uma extensão para conectar-se a outros bancos de dados, como dBase , Clipper e Paradox .

O CPD 2.x era uma solução de banco de dados com tudo o que é necessário para telas, relatórios, bancos de dados e arquivos de ajuda. Uma versão do Clarion 2.x para usuários finais, Clarion Personal Developer, também foi lançada para o usuário empresarial criar aplicativos pessoais. Por volta dessa época, a Clarion lançou o Clarion Report Writer. Ele foi criado tanto como um produto autônomo para usuários finais do Clarion Personal Developer e usuários de programas escritos por desenvolvedores com CPD, quanto como um programa integrado junto com o Clarion Professional Developer versão 2.1 lançado em 1989.

Em 1991, a Barrington licenciou a tecnologia de compilador de uma empresa chamada Jensen & Partners International (JPI).

A JPI foi fundada em 1987 por Niels Jensen, que antes (1979 ou 1981) foi um dos fundadores da Borland . Philippe Kahn foi o profissional de marketing que criou a Borland em torno do compilador Turbo Pascal de US $ 49 . Niels e sua equipe estavam trabalhando em uma nova tecnologia de compilador na Borland quando Kahn decidiu comprar Wizard C, e nomeá-lo Turbo C. Niels e vários outros desenvolvedores deixaram a Borland e começaram a JPI, onde continuaram a trabalhar em sua tecnologia de compilador, chamada TopSpeed , que eles compraram da Borland por US $ 1,7 milhão.

O Clarion Database Developer 3.0 (CDD) foi lançado em 1993. Era um produto revolucionário que adicionava muitos recursos e tecnologia que podia criar programas com uma interface de usuário Common User Access (CUA) "semelhante ao Windows" . Muitas das mudanças do CDD se encaixam bem no paradigma de programação do Windows e lançaram as bases para o futuro produto Clarion for Windows.

O CDD IDE era completamente novo e baseado no JPI IDE. Ele incluiu muitas ferramentas de qualidade de programação profissional: editor, sistema de projeto, compilador, vinculador, depurador visual. O código-p do CPD se foi. O compilador JPI para a linguagem Clarion produziu verdadeiros .exes de código de máquina , LIBs e bibliotecas de vínculo dinâmico (DLLs). Os binários podem ser compilados para o modo protegido, permitindo que os programas DOS usem memória estendida, quebrando a barreira de 640 KB.

A linguagem do Clarion 3.0 foi aprimorada de várias maneiras, por exemplo: novos tipos de dados (CSTRING, PSTRING, DATE, TIME, USHORT, ULONG), sistema de driver de arquivo (por exemplo, Btrieve, Clarion, Dbase, FoxPro, Paradox), filas (tabelas) foram aprimorado, o processamento de tela foi aprimorado para CUA. A geração de código por Modelos foi substituída por modelos que tinham mais recursos e eram extensíveis. Isso permitiu gerar um código muito mais robusto e complexo.

Com todo esse novo poder veio a complexidade. Muitos usuários existentes acharam difícil a transição para o CDD. O CPD era simples e fácil de usar, o que atraiu muitos não programadores que podiam construir programas respondendo a perguntas. O CDD era mais adequado para programadores profissionais. Os programas ainda poderiam ser desenvolvidos com a mesma facilidade, mas o tamanho e os vastos recursos do IDE o faziam parecer complexo.

Os primeiros 5 lançamentos de patch do CDD apresentavam bugs a ponto de serem inutilizáveis, o que fez com que tantos usuários abandonassem o produto que foi quase um desastre para a empresa. O Clarion continuou trabalhando no CDD e na versão 3.007 já era utilizável.

A versão 3.1 chamada Clarion for DOS (CFD) foi lançada em 1995. Provou ser muito mais estável, mas nessa época havia pouco interesse nas ferramentas de desenvolvimento do DOS. Um recurso significativo foi o driver de arquivo TopSpeed, um formato de arquivo ISAM que permite que todos os índices e vários arquivos de dados estejam contidos em um arquivo de disco.

Durante esse tempo, o relacionamento entre a Clarion Software e a JPI se estreitou e, em 30 de abril de 1992, a Clarion se fundiu com a JPI para formar uma entidade que eventualmente se chamaria TopSpeed ​​Corporation. Os funcionários do TopSpeed ​​Development Centre em Londres foram trabalhar no CDD e resolveram muitos dos bugs.

A TopSpeed ​​lançou o Clarion for Windows versão 1.0 (também conhecido como CW 1.0) em janeiro de 1995. O lançamento final de 1.003 foi em junho de 1995. O IDE foi completamente escrito como uma GUI do Windows e pode produzir Win16 EXE e binários DLL para rodar no Windows 3.x. O idioma apresentava muitos aprimoramentos necessários para oferecer suporte à interface de usuário do Windows orientada a eventos. Um desenvolvedor Clarion pode criar facilmente um aplicativo MDI multithread. O CW 1.0 continuou a flexibilidade do banco de dados adicionada ao CDD, bem como a adição de um driver ODBC permitindo a conexão com bancos de dados SQL ou qualquer fonte suportada por ODBC.

O modelo de template monolítico do DOS foi significativamente aprimorado no CW 1.0 e substituído por um modelo que permitia que uma janela usasse vários modelos (modelos de extensão, controle ou procedimento). Por exemplo, no DOS, um procedimento de tela pode dar suporte à navegação em uma tabela de dados. No CW 1.0, uma janela pode usar vários modelos de controle de navegação, cada um exibindo uma tabela diferente. Essa mudança de design foi uma grande melhoria na capacidade de geração de código do Clarion.

O Clarion for Windows versão 1.5 (também conhecido como CW 1.5) foi lançado em setembro de 1995, com o lançamento final 1.502 em janeiro de 1996. Esta versão adicionou suporte para a criação de binários Win32 nativos para Windows 95 e Windows NT 4. O mesmo código-fonte pode ter como alvo Win16 ou Win32. O IDE permaneceu 16 bits, mas adicionou compiladores, vinculador e depurador de 32 bits .

O Clarion para Windows versão 2 (também conhecido como CW20) foi lançado em junho de 1996, com o lançamento final 2.003 em março de 1997. O CW20 adicionou recursos clássicos de programação orientada a objetos à linguagem, incluindo herança, encapsulamento, métodos virtuais e sobrecarga. Suporte CW20 aprimorado de 32 bits, suporte ActiveX adicionado e suporte SQL aprimorado.

Clarion 4 (também conhecido como C4) foi lançado em dezembro de 1997, com o lançamento final 4.002 em maio de 1998. TopSpeed ​​decidiu pular a temida versão número três (a explicação oficial era que CW 1.5 "deveria ser CW 2.0", então CW 2.0 "deveria ter foi CW 3.0 ", então vamos chamar o próximo de versão 4). Devido ao fim do desenvolvimento do DOS, o nome abandonou o título "para Windows".

C4 veio com um novo conjunto de modelos e biblioteca de classes chamada Application Builder Classes (ABC). O conjunto de modelos original gerava código procedural, que estava se tornando cada vez mais complexo. O conjunto de modelos ABC gerou muito menos código e alavancou a biblioteca de classes, que continha a maior parte da lógica para janelas, navegadores, formulários, etc. O C4 aprimorou o OOP adicionando construtores e destruidores (sem parâmetros).

Clarion 5 (também conhecido como C5) foi lançado em maio de 1998, com o lançamento final 5.0B em junho de 1999. O produto foi dividido nas edições Professional e Enterprise.

Clarion 5.5 (também conhecido como C55) foi lançado em agosto de 2000, com o lançamento final 5.507 em janeiro de 2002. O C55 adicionou interfaces ao OOP.

Clarion 6.0 (também conhecido como C6) foi lançado em novembro de 2003 e adicionou suporte direto para multithreading preventivo .

Clarion 6.1 foi lançado em maio de 2004.

O Clarion 6.2 foi lançado em maio de 2005.

Clarion 6.3 lançado em janeiro de 2006. Excluindo os patches, esta é a versão final do ambiente de desenvolvimento Clarion de 16 bits. O uso de um IDE de 16 bits produziu alguns problemas com as tecnologias atuais do Windows (ActiveX, OCX, COM, DOC, ...); no entanto, observe que a série 6.x do Clarion produz executáveis ​​Win32 nativos (exes e / ou dlls de 32 bits). As versões anteriores produziam executáveis ​​de 16 e 32 bits, o suporte de 16 bits foi retirado do produto do usuário final com a versão 6.0 do Clarion.

Em 13 de abril de 2009, a SoftVelocity lançou o Clarion 7 (também conhecido como C7). O novo IDE parecerá familiar para os usuários do SharpDevelop . A SoftVelocity obteve uma licença comercial para o código SharpDevelop e integrou a geração de código e a tecnologia de geração de aplicativos da Clarion, corrigindo e estendendo as funções básicas. Os novos recursos principais (além dos recursos IDE modernos padrão que faltam no C6) incluem um sistema de construção baseado no MSBuild e compatibilidade com versões anteriores com todas as versões do Clarion de volta ao Clarion para Windows 1.5.

Clarion ainda é um ambiente de desenvolvimento Win32, mas uma versão beta do .NET Framework da linguagem, chamada Clarion # , está disponível. Tanto o Clarion # quanto o C7 compartilham o mesmo IDE, embora no momento sejam enviados como produtos separados. Ao contrário do Clarion 7 e versões posteriores, o Clarion # ainda não possui um editor de dicionário ou gerador de aplicativos. Esperava-se que um IDE Clarion7 + / Clarion.Net fosse compatível com o desenvolvimento em Win32 e .NET. No entanto, dado que pelo menos 14 anos se passaram desde que o Clarion.Net foi anunciado sem um lançamento ouro , o futuro do Clarion.Net não está claro.

O novo IDE (no modo Clarion #) retém a capacidade de construir aplicativos .NET com VB.NET e C #.

Em 12 de setembro de 2011, a SoftVelocity lançou o Clarion 8. Ele continua a linha do Clarion 7 (a versão mais recente foi o C7.3).

Em agosto de 2014, o C9.1 Gold foi lançado.

Em novembro de 2015, Clarion 10 foi lançado.

Em outubro de 2018, Clarion 11 foi lançado.

C10 foi retrabalhado para construir em .NET 4

Notabilidade

Clarion é historicamente notável como uma das primeiras ferramentas de programação de computador 4GL, desenvolvida pela primeira vez na década de 1980.

Críticas

Nenhuma versão de teste disponível

Não há versão de teste de nenhuma edição do Clarion, a partir de 2016. Portanto, não é possível produzir um programa simples "Hello World" no Clarion, sem comprar uma licença primeiro. Um Clarion Community Edition gratuito foi anunciado na Clarion International Developers Conference (CIDC) em 2019, mas ainda não foi disponibilizado.

Documentação abaixo do padrão

A documentação da Clarion é de um padrão variável, com a mistura de habilidades de "Nível Corporativo" e ".NET" combinadas em uma Fonte de Ajuda para todos.

Isso pode resultar na descrição de algumas funções na ajuda (junto com trechos de código), onde essa função não está no produto específico que está sendo usado. Por exemplo, a documentação do Clarion.Net está incluída, mesmo quando o produto clarion.Net não está instalado. No entanto, a documentação específica de um produto está claramente identificada como tal.

A documentação está atrasada em relação ao produto e está claro que ela não é completamente revisada a cada lançamento. Por exemplo, existem várias referências ao "Clarion 7" na documentação do "Clarion 9". Esse problema é evidenciado no nível "Tutorial" e "Aplicativo de amostra" também.

Propriedades da linguagem

Clarion é uma linguagem de programação imperativa que oferece suporte a uma sintaxe de programação orientada a objetos. A linguagem não faz distinção entre maiúsculas e minúsculas. As terminações de linha são tratadas como terminadores de instrução implícitos, a menos que um caractere de continuação de linha explícito seja usado. Os rótulos de dados e programas são sempre declarados na coluna 1, o código é sempre recuado da coluna 2 em diante. O recuo adicional é opcional. A sintaxe do código mais se assemelha a BASIC e Pascal em estrutura, embora a linguagem seja bastante diferente dessas.

Os blocos de código normalmente têm um início implícito (nenhuma palavra BEGIN é usada) e um final explícito ou implícito.

Por exemplo;

If x = 5
  y = z * 3
end

Um ponto final pode ser usado em vez da instrução END.

If x = 5
  y = z * 3
.

O código pode ser concatenado em uma linha usando o; separador (ou no caso de IF uma instrução THEN).

If x = 5 then y = z * 3.

Observe o período que está encerrando o bloco de instrução IF.

Uso de modelos

O Clarion gera seu código por meio de modelos. O código gerado por modelos tende a ser muito confiável, especialmente se o modelo já está em uso há algum tempo.

Os modelos são enviados na forma de origem e podem ser editados; no entanto, a edição dos modelos de envio não é recomendada. O código gerado por modelos pode ser aumentado ou alterado criando modelos personalizados adicionais ou incorporando código específico.

Os modelos são capazes de gerar qualquer arquivo baseado em texto e não se limitam a declarações de idioma.

Grande variedade de extensões de terceiros, suporte a interlíngua

A linguagem Clarion pode interagir com DLLs produzidos por outras linguagens. É compatível com bibliotecas que usam o método Pascal ou o método C de passagem de parâmetros. As chamadas da interface de programação de aplicativos ( API ) do Windows podem ser feitas diretamente da linguagem.

Flexibilidade de banco de dados

O Clarion é centrado em dados, o que significa que foi projetado para ser usado por uma ampla variedade de fornecedores de banco de dados e tem como foco os dados.

Este enfoque de dados começa com o Dicionário de Dados, que é um método para declarar tabelas de dados formalmente. Este dicionário é então usado extensivamente pelos modelos ao gerar o programa. As alterações no nível do dicionário podem entrar em cascata no programa, causando alterações automáticas no programa.

O dicionário de dados fornece um método independente de fornecedor para declarar tabelas, o que por sua vez significa que mudar um programa de um fornecedor de banco de dados para outro é relativamente simples, dentro das restrições de quais recursos o banco de dados escolhido fornece.

O Clarion oferece suporte a bancos de dados SQL e armazenamentos de dados não SQL. Suporte para tipos de arquivo ISAM populares (dBase, Btrieve, etc.) são integrados e dois sistemas de arquivos ISAM proprietários (Topspeed (TPS) e Clarion (DAT)) também são fornecidos.

No código do programa, as tabelas são um tipo de dados nativo. O acesso à tabela é fornecido por uma interface DLL padrão (denominada driver de banco de dados ) que separa o programa do armazenamento de dados escolhido. Essa abstração permite que o back-end escolhido seja alterado com nenhuma ou mínimas alterações no programa.

O Clarion oferece suporte nativo a muitos formatos de banco de dados, incluindo, mas não se limitando a:

  • ASCII
  • Básico
  • BTrieve
  • Clarion (.DAT)
  • TopSpeed ​​(.TPS)
  • Clipper
  • DBaseIII
  • DBaseIV
  • DOS
  • FoxPro / FoxBase
  • Ms-SQL (T-SQL)
  • ODBC
  • SQL Pervasivo
  • SQLite
  • MySQL
  • Oráculo
  • ADO (ActiveX Data Objects)

O driver ODBC permite acesso a qualquer fonte ODBC. Firebird e Postgres são opções populares que são acessadas via ODBC.

Além disso, devido à sua capacidade de interagir prontamente com qualquer biblioteca de classe .NET, é capaz de aproveitar qualquer uma das tecnologias mais recentes a partir de uma perspectiva de banco de dados, incluindo ASP.NET e quaisquer outras que a Microsoft disponibiliza, incluindo Windows Communication Foundation, Windows Communication Foundation e Windows Workflow Foundation, de qualquer versão.

Aprendendo

Clarion é uma linguagem simples, semelhante a BASIC ou Pascal, mas com objetos e classes adicionados.

Habilidades de dicionário

Em todas as áreas das "seções de declaração de dados do dicionário de dados" - ou seja, a "seção de dados globais", a "seção de declaração de dados específica do módulo" e as "seções de declaração de dados locais" - quando você declara um simples ou complexo tipo de dados ou variável, você também pode declarar seu "prompt, ou rótulo", "máscara" ou "imagem", seja somente leitura ou não, seja para ser ou não ignorado no formulário, no primeiro plano e no fundo cores, transparência e uma série de outros atributos.

Se essa variável for inserida em um formulário no IDE do Clarion, ele adota essas propriedades e elas são refletidas automaticamente. O dicionário de dados (ou 'banco de dados' em termos SQL), contém informações sobre os dados e como eles devem ser representados nas aplicações que fazem uso da declaração "banco de dados".

Quanto mais tempo um desenvolvedor Clarion gasta definindo o dicionário de dados, mais tempo ele economizará mais tarde quando o gerador de aplicativo 4GL produzir saída, normalmente listas de dados com recursos CRUD completos, validação e pesquisa automática de tabelas "filho".

Olá Mundo

Um exemplo de programa "Hello World" no Clarion:

   PROGRAM
     MAP
     END
   CODE
     MESSAGE('Hello World!','Clarion')
     RETURN

Programação para não programadores

O código de amostra mostrado no exemplo "Hello World" é um exemplo de código escrito à mão , que o compilador Clarion irá compilar prontamente. No entanto, a maioria dos desenvolvedores não escreve programas inteiros no nível do código, mas usa os modelos para gerar o código.

Por causa dessa capacidade de descrever um programa em um nível superior ao do código, o Clarion tem se tornado mais popular entre não programadores e programadores com habilidades ou habilidades limitadas. É possível que não-programadores gerem programas sofisticados baseados em dados sem escrever nenhum código de linguagem ou adicionando apenas quantidades mínimas de seu próprio código.

O Mapa Global

Um recurso do Clarion é denominado Mapa Global .

Dentro dele, as definições de procedimento são declaradas, incluindo, se necessário, declarações para DLLs externas ou bibliotecas escritas em linguagens não Clarion. Para uso pelo aplicativo Clarion. O Clarion também pode gerar DLLs que podem ser consumidos por aplicativos externos não Clarion, aproveitando todas as vantagens de todas as capacidades 4GL do Clarion e simplesmente conectando- se aos procedimentos que criou.

Dentro deste MAP, ele é capaz de aproveitar todas as declarações de API do Windows, usando, se necessário, os tipos de dados não mais documentados que são essenciais para o sistema operacional (SO) Windows.

Interoperar com bibliotecas .NET

Como o Clarion # é baseado no .NET versão 4 (a mesma versão usada para desenvolver o IDE do Clarion 10), ele permite que o desenvolvedor use outras bibliotecas .NET.

A vantagem de usar o Clarion # diretamente é que compilar um Clarion # DLL gera um arquivo LIB que é compatível com o Clarion for Windows e permite que um programa Clarion for Windows chame as funções .NET no Clarion # DLL da mesma maneira que para outros DLLs do Win32.

Se um desenvolvedor Clarion quiser usar código compilado usando outras linguagens, ele pode usar Exportações não gerenciadas - um pacote NuGet desenvolvido por Robert Gieseck ( https://www.nuget.org/packages/UnmanagedExports ). As exportações não gerenciadas permitem que um desenvolvedor exponha funções desenvolvidas usando .NET para idiomas nativos no Windows. Isso é útil para aqueles que precisam manter um produto Clarion, mas não têm como atualizar as ferramentas de terceiros devido à falta de suporte. A maioria das ferramentas de terceiros pode ser reescrita em .NET com facilidade.

Referências

links externos