Estoy diseñando un lenguaje de programación OO simple.
Está estáticamente escrito, compilado y ejecutado por una VM, similar a Java.
La diferencia es que no quiero tener un énfasis tan fuerte en OOP. El código en sí se parecerá principalmente a C ++ (clases, funciones y variables permitidas en el alcance del archivo).
Una de las cosas que necesito tener es un sistema de módulos. Tengo lo siguiente resuelto:
- Cada archivo es un módulo (una vez compilado), como Python
- Los programadores deben importar un módulo con la
import
palabra clave, lo que hace que el compilador busque módulos en directorios estándar y en el directorio de archivos (la VM también tiene que hacer esto en tiempo de ejecución)
Y ahora no tengo idea de cómo debo introducir el concepto de submódulos y jerarquía de módulos.
Una opción, por ejemplo, es depender de la jerarquía del directorio, por lo que import engine.graphics.renderer
esperaría encontrar un directorio llamado "motor" en el directorio de trabajo, y dentro de un directorio llamado "gráficos", con un módulo llamado "renderizador".
¿Cuáles son los inconvenientes de tal diseño? ¿Me estoy perdiendo algo?
foo.bar
ser foo / bar.file o algún módulo foo
con el miembro (también un módulo) bar
. Algo a tener en cuenta
@annotations
para incrustar dicha información.