LIMACE (Langage
Immédiat
pour Machines
à Calculer
Élémentaires)
UN CROSS-COMPILATORE da LIMACE a TI-57 S.O.A. A CROSS-COMPILER from LIMACE to TI-57 A.O.S. |
|||||||||
In realtà l'idea di un "linguaggetto" per la TI-57 mi ha preso subito e dopo gli interessanti risultati di BAX-59 ho deciso di riprendere ed estendere l'idea di LIMACE (solo per 57 ovviamente) partendo dal programma pubblicato: è nato così LIMACE57 v 2.0 che è stato integrato come il suo fratello maggiore nell'emulatore della TI-57. La cosa curiosa è che l'originale è scritto tutto in francese (parole chiave comprese) e per rispetto agli ideatori la cosa è stata mantenuta affiancandola con una versione in inglese che è quella usata dall'emulatore. Al solito, il richiamo di LIMACE57 avviene con Shift-F7 e una volta compilato il tutto con F7 il risultato viene importato ed eseguito: l'ambiente di programmazione LIMACE ha i suoi propri comandi per caricare, salvare, listare, stampare ecc.. i propri file (con estensione .LIM). Il progetto LIMACE57 (Langage Immédiat pour Machines à Calculer Élémentaires pour TI-57) è essenzialmente composto da una sola parte che comprende sia il cross-compiler vero e proprio che l' "ottimizzatore": con il comando CREATE (CREERE) viene prodotto un file .SOA importabile dall'emulatore. Viste le dimensioni della memoria della 57 è possibile che vengano superati i limiti dei 50 passi disponibili: in questo caso il file finale dovrà essere "ottimizzato" manualmente per farlo rientrare nei limiti della memoria stessa. Comunque, come per BAX-59, LIMACE57 è utilizzabile anche da solo: mancherà ovviamente la possibilità diretta di esecuzione. Basterà al limite immettere il programma in una TI-57 reale e si potrà vederlo all'opera.....
La pagina iniziale di presentazione del linguaggio. Vediamo un programma che ci può permettere di fare un confronto tra le sintassi di BAX-59 e LIMACE57. Il programma è stato tratto dall'HP-25 Owner's Handbook a pag. 98 ("Converging Series") che calcola "e" nei limiti della precisione della macchina tramite la nota serie 1/0! + 1/1! + 1/2! + ... + 1/n!
|
|||||||||
IL LINGUAGGIO |
|||||||||
Le variabili sono solo semplici (da V0 a V7), le espressioni possono comprendere i soliti operatori aritmetici e sedici funzioni, gli operatori relazionali usabili nei confronti, tramite la IF..THEN, sono i consueti, i salti con GOTO n.linea, sono presenti le subroutine che terminano con RETURN e si richiamano tramite una GOSUB, l'unica istruzione di ciclo è la WHILE..WEND che può agire solo su V0 (niente cicli nidificati quindi).
Una tabella riassuntiva del linguaggio LIMACE (inglese e francese........) Nelle cartelle LIMACE57\PROG\ENG e LIMACE57\PROG\FRA sono presenti, oltre agli eseguibili, anche degli esempi - rispettivamente per l'inglese e per il francese - che possono essere usati come guida per vedere come viene effettuata la traduzione. Anche qui viene riportato come esempio, il calcolo del massimo comun divisore (EUCLIDE.LIM) di una coppia di numeri a e b, secondo il noto algoritmo euclideo.
LIMACE57 è scritto, al solito, in Quick Basic
4.5
(ma è stato compilato con Basic PDS 7.1) e quindi è a 16 bit:
come già detto sono disponibili due versioni nazionalizzate in inglese e
francese. E' disponibile pure la versione a 32/64 bit compilata con
QB64 1.20. |
|||||||||
LIMACE57 versione 2 (anche a 32/64 bit). |
|||||||||
Download LIMACE57 cross-compiler (2.0) (documentazione inclusa - documentation included) LIMACE-59 is available in
English and François.
|