nSquirrel on Ti-Nspire
Posted: 07 Apr 2016, 00:34
nSquirrel
Squirrel on Ti-Nspire
Last release version (v1.0.1) : https://github.com/Eiyeron/squirrel/rel ... rrel_1.0.1
Project repository : https://github.com/Eiyeron/squirrel/
nSquirrel (interpreter + n2SDLib) branch : https://github.com/Eiyeron/squirrel/tree/nSquirrel
"Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games."
Although Squirrel offers a wide range of features like:
nSquirrel is a fork of this language destined for Ti-Nspires. The core language will be easily embeddable into Ndless projects as the project offers libraries and API to mess with it. Thus, it's included with bindings to n2DLib to allow playing with the screen and the keyboard.
nSquirrel
Instructions :
- Download the archive containing the program (sq.tns) and if wanted, the example scripts.
- Install your sq.tns on your calc's nspire folder
- Now you can launch the interpreter for an interactive session (
- The interpreter registering itself to open .nut files, to execute such scripts, you will just have to click on them.
Notes
- For further versions, I'll probably provide two versions of the binaries, ones to compile nSquirrel's interpreter (which uses Nspire-IO) and one to be included in projects.
Example script
Last release version (v1.0.1) : https://github.com/Eiyeron/squirrel/rel ... rrel_1.0.1
Project repository : https://github.com/Eiyeron/squirrel/
nSquirrel (interpreter + n2SDLib) branch : https://github.com/Eiyeron/squirrel/tree/nSquirrel
"Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games."
Although Squirrel offers a wide range of features like:
- Open Source MIT licence
- dynamic typing
- delegation
- classes & inheritance
- higher order functions
- lexical scoping
- generators
- cooperative threads (coroutines)
- tail recursion
- exception handling
- automatic memory management (CPU bursts free; mixed approach ref counting/GC)
- both compiler and virtual machine fit together in about 7k lines of C++ code and add only around 100kb-150kb the executable size
- optional 16bits characters strings
- powerful embedding api
- eg. function/classes can be defined by scripts or in C
- eg. objects can fully exist in the VM or be bound to native code
- eg. classes created in C can be extended by scripts or vice-versa
- and more
- eg. objects can fully exist in the VM or be bound to native code
nSquirrel is a fork of this language destined for Ti-Nspires. The core language will be easily embeddable into Ndless projects as the project offers libraries and API to mess with it. Thus, it's included with bindings to n2DLib to allow playing with the screen and the keyboard.
nSquirrel
Instructions :
- Download the archive containing the program (sq.tns) and if wanted, the example scripts.
- Install your sq.tns on your calc's nspire folder
- Now you can launch the interpreter for an interactive session (
quit()
to exit it) or launch a .nut script (only after running the exectuable once). NOte that thanks to nspireio, you have to press twice Enter to validate your input.- The interpreter registering itself to open .nut files, to execute such scripts, you will just have to click on them.
Notes
- For further versions, I'll probably provide two versions of the binaries, ones to compile nSquirrel's interpreter (which uses Nspire-IO) and one to be included in projects.
Example script
Squirrel sur Ti-Nspire
Dernière version (v.1.0.1) : https://github.com/Eiyeron/squirrel/rel ... rrel_1.0.1
Source du projet : https://github.com/Eiyeron/squirrel/
Branche avec interpréteur nSquirrel (+n2DLib) : https://github.com/Eiyeron/squirrel/tree/nSquirrel
"Squirrel est un langage de programmation impératif de haut niveau et orienté objet, conçu pour être un langage de script léger qui rentre les conditions de taille, mémoire et resosurces de temps réels dans des applications comme des jeux vidéos."
(Autrement dit : C'est un langage de programmation destiné à être embarqué comme le lua)
Même si Squirrel offre un large panel de fonctionnalités :
nSquirrel est un dérivé de ce langage destiné aux calculatrices Ti-Nspire. Le cœur du programme sera facilement intégrable dans des projets Ndless car le projet offre des librairies et une API pour intéragir avec. Ainsi, le programme est inclus à la librarie n2DLib pour permettre de jouer avec l'écran et le clavier.
nSquirrel
Instructions d'installation :
Notes
Pour les versions futures, je fournirai 2 versions des fichiers binaires : l'une pour compiler l'interpréteur nSquirrel (qui utilise Nspire-IO) et l'autre pour être incluse dans des projets
Exemple de script :
Dernière version (v.1.0.1) : https://github.com/Eiyeron/squirrel/rel ... rrel_1.0.1
Source du projet : https://github.com/Eiyeron/squirrel/
Branche avec interpréteur nSquirrel (+n2DLib) : https://github.com/Eiyeron/squirrel/tree/nSquirrel
"Squirrel est un langage de programmation impératif de haut niveau et orienté objet, conçu pour être un langage de script léger qui rentre les conditions de taille, mémoire et resosurces de temps réels dans des applications comme des jeux vidéos."
(Autrement dit : C'est un langage de programmation destiné à être embarqué comme le lua)
Même si Squirrel offre un large panel de fonctionnalités :
- Licence MIT Open Source
- typage dynamique
- délégation
- classes et héritage
- fonctions de haut niveau
- encapsulation lexicale
- générateurs
- threads coopératifs (coroutines)
- simplification automatique de récursion terminale
- gestion des exceptions
- Gestion automatique de la mémoire (sans pic d'utilisation du CPU; approche mixte de collection de déchets et de comptage de références)
- Le compilateur et la VM tiennent sur environ 7000 lignes de C++ et n'ajoutent qu'à peu près 100-150kb de données sur l'exécutable.
- en option, chaînes de caractères 16-bits
- puissante API embarquée
- exemples avec des classes et fonctions définissables par script ou en C
- Ex : les objets peuvent n'exister que dans la VM ou être lié à du code natif
- Les classes définies en C peuvent être étendues par des scripts et vice versa
- Et plus!
- Ex : les objets peuvent n'exister que dans la VM ou être lié à du code natif
nSquirrel est un dérivé de ce langage destiné aux calculatrices Ti-Nspire. Le cœur du programme sera facilement intégrable dans des projets Ndless car le projet offre des librairies et une API pour intéragir avec. Ainsi, le programme est inclus à la librarie n2DLib pour permettre de jouer avec l'écran et le clavier.
nSquirrel
Instructions d'installation :
- Téléchargez l'archive contenant l'interpréteur (sq.tns) et si voulus, les scripts d'exemple
- Installez sq.tns dans le dossier "ndless" de votre calculatrice
- À présent, vous pouvez soit lancer l'interpréteur (
quit()
pour quitter) ou vous pouvez lancer un fichier .nut.tns (après avoir au moins lancé une fois l'interpréteur). Notez qu'à cause d'nspire-io, vous avez à appuyer deux fois sur Enter pour valider. - L'interpréteur s'enregistre automatiquement pour ouvrir les fichiers .nut à leur exécution.
Notes
Pour les versions futures, je fournirai 2 versions des fichiers binaires : l'une pour compiler l'interpréteur nSquirrel (qui utilise Nspire-IO) et l'autre pour être incluse dans des projets
Exemple de script :