É uma implementação da linguagem ML, baseada no dialeto Caml Luz estendido com um sistema completo de objetos com base na classe e um poderoso sistema de módulos no estilo do Standard ML.
Objective Caml compreende dois compiladores. Uma gera bytecode que é então interpretado por um programa C.
Este compilador é executado rapidamente, é portátil para qualquer plataforma Unix, essencialmente, 32 ou 64 bits e gera código compacto com requisitos moderados de memória.
Desempenho de programas gerados é muito bom para uma implementação bytecoded.
Este compilador pode ser usado tanto como um autônomo, compilador orientada para o lote que produz programas independentes, ou como um sistema interativo, toplevel-based.
O outro compilador gera código nativo de alto desempenho para um número
de processadores.
Compilação leva mais tempo e gera um código maior, mas os programas gerados proporcionar um excelente desempenho, mantendo os requisitos de memória moderados do compilador bytecode.
Objective Caml é a variante mais popular da linguagem Caml.
Do ponto de vista da linguagem, que estende a linguagem núcleo Caml com uma camada orientada a objeto de pleno direito, bem como um poderoso sistema de módulos, todos conectados por um sistema de som tipo polimórfico, com a inferência de tipos.
O sistema Caml Objectivo é uma implementação industrial-força dessa linguagem, com um compilador de código nativo de alto desempenho (ocamlopt) para 9 arquiteturas de processadores (IA32, PowerPC, AMD64, Alpha, Sparc, MIPS IA64, HPPA, StrongArm), bem como um compilador de bytecode (ocamlc) e um loop interativo read-eval-print (ocaml) para o desenvolvimento rápido e portabilidade.
A distribuição Caml objetivo inclui uma biblioteca padrão abrangente, um depurador de replay (ocamldebug), lexer (ocamllex) e analisador (ocamlyacc) Geradores, um pré-processador pretty-impressão (camlp4) e um gerador de documentação (ocamldoc).
O que é novo nesta versão:
- Atualizado para Tcl / Tk 8.6.
- Rejeitar múltiplas declarações do mesmo método ou variável de instância em um objeto.
- propagar informações de tipo no sentido de correspondência de padrões, mesmo na presença de variantes polimórficas.
O que é novo na versão 4.02.1:
- Atualizado para Tcl / Tk 8.6.
- Rejeitar múltiplas declarações do mesmo método ou variável de instância em um objeto.
- propagar informações de tipo no sentido de correspondência de padrões, mesmo na presença de variantes polimórficas.
O que é novo na versão 3.12.1:
- Buds fixo:
- variáveis não utilizadas não detectados em "incluem (struct .. end)"
- camlp4 revisto bug impressão de sintaxe no nível superior (relataram on-lista caml)
- configure: não definem _WIN32 sob cygwin
- endurecido comparação genérica no caso em que dois blocos personalizados são comparados e têm diferentes conjuntos de operações personalizadas.
- endurecido comparação entre bigarrays no caso em que os dois bigarrays têm diferentes tipos.
- auto-detecção errada Fixa de expm1 () e log1p ().
- Não adicione o sufixo .exe durante a instalação do script shell ocamlmktop
- ocamldoc: pequenas correções relacionadas à tela de opções ocamldoc
- Corrigido o erro com valores enormes em OCAMLRUNPARAM
- incompatibilidade entre a declaração e definição de caml_major_collection_slice
- desejos de recursos:
- Adicionado "-ml-sinónimo« e opções "-mli-sinónimo« a ocamldep
- Adicionado "-ocamldoc 'opção para ocamlbuild
- Adicionado possibilidade de adicionar opções para ocamlbuild
- Adicionado acesso a analisadores camlp4 atuais e impressoras
- Melhorar a selecção de instruções para as operações de flutuar na amd64
- Adicionado uma função 'usage_string' para Arg
- Permita com restrições para adicionar uma equação tipo a uma definição de tipo de dados
- Permitir para mesclar 'Before' tags como demais
- Permita que a dependência de arquivo "_oasis"
- Outras alterações:
- padrão Mudou tamanho de heap menor de 32k a 256k palavras.
- Adicionado nova operação 'compare_ext' para blocos personalizados, chamados ao comparar um valor bloco personalizado com um número inteiro unboxed.
O que é novo na versão 3.12.0:
- padrões de registro do formulário {lbl = pat; _} Para marcar que nem todos os rótulos são listados, propositadamente.
- Os avisos são agora numerados e pode ser ligado e desligado individualmente. O sistema antigo com letras referentes a conjuntos de avisos ainda é suportado.
- Adicionado opção '-strict-sequence' para forçar parte da mão esquerda de seqüência para ter o tipo de unidade.
- Mapa:. implementar funções de Set que fazem sentido para Map
- Adicionar suporte para DYNLINK nativa.
- A semântica de aviso 7 (código 'M', método de substituição) mudaram (ele agora detecta todas as substituições, não apenas definições repetidas dentro do mesmo corpo da classe), e é agora inativo por padrão.
O que é novo na versão 3.11.2:
- Melhor documentação para min e max w.r.t. NaN
- ocamlbuild usa compilador errado para arquivos C
- ocamlbuild não usa corretamente configuração informações
- Em algumas instalações do Windows, os tempos elevados de arranque para Unix lib
- Problema com scanf e CRLF
- ocamlmklib problema no Windows
- BSD problema com endereços de socket, por exemplo, em Unix.getnameinfo
- Problema com análise de literais flutuador pelo montador GNU
- Problema com módulos e tipos particulares
Requisitos :
- GNU compilador C - gcc
Comentários não encontrado