sábado, 21 de novembro de 2009

Compilador de bits da realidade

Dos zeros e uns da máquina cria-se uma realidade. Realidade, essa virtual que muitas vezes o que lá há é passado daí cá para fora como a imagem imprimida, a imagem do monitor etc. É fantástico como corrente não corrente buraco não buraco e uma das mais complexas máquinas pode fazer.
Ora bem, o que eu quero fazer é a construção de objectos reais predefinidos na realidade virtual. Para isso vou sugerir um novo modelo de compilador. Mas para definir o compilador, tem-se de definir a linguagem.
Uma das tarefas do compilador é transformar código de alto nível (mais abstracto) em código de baixo nível (código executável). A outra é detectar alguns tipos de erros.
Ora o código do mundo virtual, com o objectivo de criar um objecto na realidade (sub-partícula, átomos, ou seja o que for), tem de passar por várias fases.
As fases que constituem o papel do compilador actual são análise lexical, análise sintáctica, análise semântica, optimização e geração de código.
O que este tipo de compiladores tem de ter ainda mais em conta na verificação de erros é incluir modelos matemáticos, pesquisa de elementos, hipótese de escrever no compilador, situações de perigo, o nível de profundidade da plataforma física, o facto de uma partícula influenciar outra e outros eventuais métodos...
A inclusão de modelos matemáticos conhecidos faz uma parte fundamental, porque a matemática é o conhecimento mais certo e exacto de todos.
A verificação dos erros semânticos e sintácticos tal como na construção de um programa, porque se não estiver bem escrito a máquina não entende.
A pesquisa de elementos sobrepostos, porque na realidade nada ocupa o mesmo lugar que outra coisa qualquer ou precisa-se aceder à base de dados. A base de dados pode ter informações importantes das bibliotecas disponíveis, bem como recursos disponíveis (mesmo que assim já esteja a incluir erros sintácticos ou semânticos ou lexicais estou a ver tudo mais aprofundado).
O nível de profundidade da plataforma física é importante porque podemos querer mexer ao nível do átomo, ou de uma cocha do mar, ou de outro qualquer respectivo à escala.
A hipótese de escrever no compilador de forma limitada elementos a não compilar (desde que não haja perigo), ou obrigar a compilar (desde que não haja perigo), ou a substituir algo. Um compilador assim poderá ajudar a resolver problemas como a alteração do trabalho do compilador, e erros na aplicação que devem ser bem explícitos.
Oportunismo de disponibilidade: Nem sempre podemos fazer ou actuar logo aquilo que queremos. Temos de esperar ou preparar adequadamente até podermos comunicar ou enviar seja o que for. Mas quando podemos temos de tomar atitude. O sistema precisa de sincronismo.
A alteração do trabalho do compilador permite uma melhor detecção de erros no projecto.
As situações de perigo do produto são bastante importantes (não vá alguém construir algo que ponha vidas em perigo).
O facto de uma partícula influenciar outra, vai afectar o nível de perigo, o desequilíbrio de todas as partículas do sistema, e todo o comportamento após a compilação.
As medições que são boas para os modelos matemáticos permitem ver se tudo está bem e podem exigir processamento. Conforme aquilo que criamos para um objectivo possível temos de ver se é possível ou não fazer medições ou teremos de adoptar outras técnicas. O mecanismo de calculo pode-se tornar demaseado grande para o sistema.
O ajuste dos contactos como processo interactivo. Um processo interactivo é um processo cíclico, em que cada ciclo se introduz melhorias. Pode não ser possível fazer tudo de uma vez e muitas vezes o compilador pode ir por um caminho um pouco mais longo para que tudo corra bem.
Os contactos como uma das formas de ver se o produto é compilado conforme a fonte. Hum! Esta pode ser difícil! É melhor ter mais cuidado. Isso depende. Os contactos representam a comunicação entre os componentes, eles só por si não querem dizer nada. O que quer dizer alguma coisa é aquilo que podemos comunicar connosco.
Os assertos temporários. No mundo físico tudo se degrada. Esta é uma operação de rotina que é executada sempre que possível, para evitar que o código vaia contra o objectivo da fonte com o passar do tempo.
Além disso, à medida que o conhecimento for evoluindo pode-se ir aperfeiçoando as características favoráveis e desfavoráveis ao elemento final com base no principio da energia mínima, nas forças de interacção, no principio que nada se perda nem nada se ganha e quem sabe muito mais.
Mas haverá mais a acrescentar?

Licença GPL

Sem comentários:

Enviar um comentário