4D v14.3

Comandos de Compilação

Página Inicial

 
4D v14.3
Comandos de Compilação

Comandos de Compilação  


 

 

O compilador integrado de 4D traduz seus aplicativos de banco de dados em instruções de assembly. As vantagens do compilador são:

  • Velocidade: seu banco de dados pode ser executada de 3 a 1.000 vezes mais rápida.
  • Verificação do código: Seu aplicativo de banco de dados é verificado para ter a consistência no código. Ambos os conflitos de lógica e sintática são detectados.
  • Proteção: Uma vez que seu banco de dados seja compilado, você pode apagar o código interpretado, então, o banco de dados compilado tem as mesmas funcionalidades que a base original, exceto que a estrutura e os métodos não podem ser visualizados ou modificados, de forma deliberada ou inadvertidamente.
  • Aplicações independentes "duplo click": As bases compiladas também podem ser transformadas em aplicações independentes com o seu próprio ícone (arquivos .EXE).

Para obter uma descrição do funcionamento do compilador 4D, consulte o manual de desenho.

Os comandos no âmbito deste tema dizem respeito à utilização do compilador. Eles permitem normalizar os tipos de dados em toda o seu banco de dados. O comando IDLE é utilizado especificamente em bancos de dados compilados.

C_BLOBC_INTEGERC_REAL
C_BOOLEANC_LONGINTC_STRING
C_DATEC_PICTUREC_TEXT
C_GRAPHC_POINTERC_TIME
C_OBJECTIDLE

Esses comandos, exceto o IDLE, declaram variáveis e as lançam como um tipo de dados específico. Declarar variáveis resolve as ambigüidades a respeito do tipo de uma variável de dados. Se uma variável não é declarada com um desses comandos, o compilador tenta determinar o tipo de uma variável de dados. O tipo de dados de uma variável usada em um formulário é muitas vezes difícil para o compilador determinar. Portanto, é especialmente importante que você use esses comandos para declarar uma variável usada em um formulário.

Nota: Para economizar tempo, você pode usar a opção de geração e atualização de métodos de tipagem (chamados de "métodos Compiler") encontrados na janela do compilador. Esta opção cria automaticamente métodos de tipagem que fazem um balanço e atribuem um tipo para todas as variáveis usadas no banco de dados.

Arrays são variáveis que devem seguir as mesmas regras como variáveis-padrão em relação a compilação. Os comandos de declaração de array são agrupados no tema "Arrays".

  • Você não deve dar o mesmo nome para mais de um método ou variável. Você não pode ter um método com o mesmo nome de uma variável.
  • Direção variável utilizada em 4D versão 1 não é permitido. Você não pode usar direção alfa, com o símbolo da seção (§), para referenciar variáveis indiretamente. Também não se pode usar direção numérica, com o chaves ({...}), para esta finalidade. As chaves só podem ser usadas ao acessar elementos específicos de um array que tenha sido declarado. No entanto, você pode usar o parâmetro indireto.
  • Você não pode alterar o tipo de dados de qualquer variável ou array.
  • Você não pode mudar um array unidimensional para um array bidimensional, ou alterar um array bidimensional para um array unidimensional.
  • Você não pode mudar o comprimento da string ou variáveis de elementos em arrays de string.
  • Embora o compilador coloque o tipo da variável para você, você deve especificar o tipo de dados de uma variável usando diretivas do compilador onde o tipo de dados é ambíguo, como em um formulário.
  • Outra razão para digitar explicitamente suas variáveis é otimizar seu código. Esta regra aplica-se especialmente a qualquer variável utilizada como um contador. Use variáveis de uma tipo inteiro longo para o máximo desempenho.
  • Para apagar uma variável (inicializá-lo em null), use CLEAR VARIABLE com o nome da variável. Não utilize uma seqüência de caracteres para representar o nome da variável no comando CLEAR VARIABLE.
  • A função Undefined sempre retornará False. As variáveis são sempre definidas.
  • Operações numéricas em inteiro longo e variáveis inteiras são geralmente muito mais rápidas do que operações do tipo padrão numérico (real).

Esses princípios estão detalhados nas seções seguintes:
Usar Diretivas de Compilador, explica quando e onde escrever diretivas de compilador, Licença de Uso e Licença Avaliação,
Texto multi estiloGuia Digitação, descreve os diferentes tipos de conflitos que podem ocorrer durante a compilação de dados 4D, Licença de Uso e Avaliação,
Página Usuários fornece informações adicionais relativas a vários comandos 4D, Licença de Uso e Licença Avaliação,
Dicas de otimização, oferece dicas para acelerar a execução de aplicativos em modo compilado.

A seguir, algumas declarações de variáveis básicas para o compilador:

 C_BLOB(vxMiBlob` A variável de processo vxMyBlob é declarada como uma variável do tipo BLOB
 C_BOOLEAN(◊EmWindows` A variável interprocess ?OnWindows é declarada como uma variável do tipo Booleano
 C_DATE($vdData` A variável local $vdCurDate é declarada como uma variável do tipo Data
 C_GRAPH(vg1;vg2;vg3` Três variáveis de processo vg1, vg2 e vg3 são declaradas como variáveis do tipo de gráfico

No exemplo abaixo, o método de projeto UmMetodoEntreOutros declara três parâmetros:

  ` Método de projeto UmMetodoEntreOutros
  ` UmMetodoEntreOutros( Real ; Integer { ; Long } )
  ` UmMetodoEntreOutros ( Amount ; Percentage { ; Ratio } )
 C_REAL($1)
  ` 1er parâmetro é de tipo Real
 C_INTEGER($2)
  ` 2do parâmetro é de tipo Inteiro
 C_LONGINT($3)
  ` 3er parâmetro é tipo Inteiro longo
 &NBSP` ...

No exemplo a seguir, o método de projeto Capitalize aceita um parâmetro string e retorna uma string como resultado:

  ` Método de projeto Maiusculas
  ` Maiusculas ( Alfa) -> Alfa
  ` Maiusculas ( String fonte ) -> String em maiúsculas
 
 C_STRING(255;$0;$1)
 $0:=Uppercase(Substring($1;1;1))+Lowercase(Substring($1;2))

No exemplo a seguir, o método de projeto ENVIAR PACOTES aceita um parâmetro de tempo, seguido por um número variável de parâmetros de texto:

  ` Método de projeto ENVIAR PACOTES
  ` ENVIAR PACOTES ( Hora; Texto { ; Texot2... ; TextoN } )
  ` ENVIAR PACOTES ( docRef ; Data { ; Data2... ; DataN } )
 
 C_TIME($1)
 C_TEXT(${2})
 C_LONGINT($vlPacket)
 
 For($vlPacket;2;Count parameters)
    SEND PACKET($1;${$vlPacket})
 End for

No exemplo abaixo, o método de projeto COMPILER_Param_Predeclare28 predeclara a sintaxe dos métodos de outros métodos de projeto para o compilador:

  ` Método de projeto COMPILER_Param_Predeclare28
 
 C_REAL(UmMetodoEntreOutros;$1` UmMetodoEntreOutros ( Real ; Integer { ; Long } )
 C_INTEGER(UmMetodoEntreOutros;$2` ...
 C_LONGINT(UmMetodoEntreOutros;$3` ...
 C_STRING(Maiusculas;255;$0;$1` Maiusculas ( Alfa ) -> Alfa
 C_TIME(ENVIAR PACOTES;$1` ENVIAR PACOTES ( Hora; Texto { ; Texot2... ; TextoN })
 C_TEXT(ENVIAR PAQUETES;${2}) ` ...

 
PROPRIEDADES 

Produto: 4D
Tema: Compilador

 
VER TAMBÉM 

C_BLOB
C_BOOLEAN
C_DATE
C_GRAPH
C_INTEGER
C_LONGINT
C_PICTURE
C_POINTER
C_REAL
C_STRING
C_TEXT
C_TIME
IDLE

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)

Inherited from : Comandos de Compilação ( 4D v11 SQL Release 6)