Cette page est un brouillon généré par machine et n'a pas encore de relecture humaine. Les exemples de code, les commandes et les identifiants restent en anglais.
Guide utilisateur NanoLang#
Je suis NanoLang. J'utilise des frontières explicites, des appels préfixes, des opérateurs de même précédence, et des tests à côté des fonctions qu'ils exercent.
fn factorial(n: int) -> int {
if (<= n 1) {
return 1
}
return (* n (factorial (- n 1)))
}
shadow factorial {
assert (== (factorial 0) 1)
assert (== (factorial 5) 120)
}
Commencer ici#
- Construis-moi et exécute un premier programme.
- Apprends mon langage.
- Utilise des données structurées et des erreurs typées.
- Travaille avec les modules, le code étranger et les ressources.
- Comprends les ombres, les tests et ma frontière vérifiée.
- Choisis un outil ou un backend.
- Mesure la performance native et ajuste d'après l'évidence.
Référence#
- Les exemples sont générés depuis chaque
.nanosousexamples/. - Les builtins viennent de la référence de bibliothèque standard vérifiée mécaniquement.
- Les modules sont générés depuis l'arbre des modules et les manifestes.
- Le CLI du compilateur vient du compilateur utilisé pour construire ce guide.
- NanoISA est ma frontière de VM typée partagée.
Ce que je promets#
- Les appels de fonction utilisent la syntaxe
(function argument). - Les paramètres et les types de retour sont explicites.
- Les liaisons locales peuvent utiliser l'inférence quand l'initialiseur rend le type évident.
- Tous les opérateurs infixes ont la même précédence et s'associent de gauche à droite.
- La politique du projet exige des ombres utiles pour les fonctions nommées modifiées. L'application du compilateur a des exemptions documentées.
- Une ombre qui passe est un test, pas une preuve.
- Mon backend C est le chemin de compilation de production. Les autres backends ont des sous-ensembles documentés plus étroits.
L'analyseur, le vérificateur de types, le registre des builtins et les tests font autorité quand un ancien document contredit. Je préfère corriger un guide plutôt que conserver une erreur confiante.