Estou projetando uma linguagem de programação OO simples.
É estaticamente digitado, compilado e executado por uma VM - semelhante ao Java.
A diferença é que eu não quero ter uma ênfase tão forte no POO. O código em si se assemelhará principalmente ao C ++ (classes, funções e variáveis permitidas no escopo do arquivo).
Uma das coisas que eu preciso ter é um sistema de módulos. Eu tenho o seguinte descoberto:
- Todo arquivo é um módulo (uma vez compilado) - como Python
- Os programadores devem importar um módulo com a
import
palavra - chave, o que faz com que o compilador procure por módulos nos diretórios padrão e no diretório de arquivos (a VM também precisa fazer isso em tempo de execução)
E agora não tenho idéia de como devo introduzir o conceito de submódulos e hierarquia de módulos.
Uma opção, por exemplo, é depender da hierarquia de diretórios, de modo que import engine.graphics.renderer
seria de esperar encontrar um diretório chamado "engine" no diretório de trabalho e dentro de um diretório chamado "graphics", com um módulo chamado "renderer".
Quais são as desvantagens desse projeto? Estou faltando alguma coisa?
foo.bar
Nesse caso, existe uma ambiguidade entre ser foo / bar.file ou algum módulo foo
com o membro (também um módulo) bar
. Tudo a considerar
@annotations
para incorporar essas informações.