- 13 Settembre 2009
- 100
- 45
- Miglior risposta
- 0
RedStone Language (RS-L) v0.1a (Alpha)
Indice:
Indice:
- L'idea;
- Il linguaggio;
- Diritti;
- Adesione al progetto;
L'idea:
L'idea è nata da Gennaro Landolfi (RinoDrummer). Per avere un margine di errore ridotto, ha chiesto al suo amico Carmine Froncillo (TheCarm001).
Entrambi giocatori di Minecraft. Il primo, essendo un programmatore di Redstone ha pensato di estendere il senso di Programmatore creando un linguaggio di programmazione applicabile ai Circuiti e che avrebbe aiutato la comprensione dei medesimi.
Il Linguaggio:
Regole essenziali:
1. Deve essere usato uno schema a cascata;
2.Ogni linea va chiusa col simbolo ";".
Dichiarazione degli Input e degli Output:
Gli Input vengono dichiarati con la lettera "I" sempre maiuscola.
Se in un circuito vi sono più input si può utilizzare la forma I[SUB]n[/SUB].
La regola rimane invariata per l'output:
Viene indicato con la lettera "O" sempre maiuscola.
Se in un circuito vi sono più input si può utilizzare la forma O[SUB]n[/SUB].
Valori di Input, Output e Variabili:
Normalmente, nell'aritmetica booleana, i valori che può assumere la variabile sono
solo due: TRUE (VERO/1/ON) e FALSE (VERO/0/OFF).
Dato il caso che nella Redstone, il circuito può assumere valori che vanno in
clock, ovvero cambiano in continuazione da 1 a 0 e/o possono variare da altri
circuiti, si può indicare lo stato degli stessi richiamandoli nel valore.
In questo linguaggio, i valori posso anche essere chiamati stati dato il fatto che
il valore infatti indica lo stato del circuito, dell'input e output.
Quindi gli stati possono assumere tre valori: 1, 0 e $<Oggetto>(Stato).
Nel caso di una cella di memoria come oggetto, è inutile indicare lo stato quando richiamato.
Se l'oggetto è un clock e lo stato è 1 si intende che il clock è in loop, mentre se è 0
si intende che il clock è in ripetizione.
Richiamare un gruppo:
Se un gruppo è già stato dichiarato (vedi "Commenti") può essere richiamato precedendo il nome
con il simbolo "$";
Es.:
$<NomeGruppo>;
Può anche essere dichiarato il suo stato.
Richiamare un solo membro di un gruppo:
Spesso si ha la necessità di richiamare un solo membro di un gruppo.
A questo si possono applicare tutte le regole tradizionali.
Ciò si può fare utilizzando questa forma:
$<NomeOggetto>.<NomeGruppo>
Utilizzare un gruppo come valore:
Come citato nel paragrafo "Valori di Input, Output e Variabili", i gruppi
possono anche assumere il ruolo di valore.
Es.:
<Oggetto> = $<NomeGruppo>;
Sommare gli effetti di più gruppi:
Si possono anche sommare gli stati dei vari gruppi utilizzando il simbolo "+".
Si possono avere infinite somme.
Es.:
<Oggetto> = $<NomeGruppo1> + $<NomeGruppo2> +
$<NomeGruppon> + ...;
Per sommare un ritardo bisogna scrivere:
<Oggetto> = $<NomeGruppo>(DELAY) + ...
Commenti:
I commenti possono essere di tre tipi:
- di pre-esecuzione o di gruppo (#);
- di funzione (o singolo) (//*);
- multilinea generale (<rem!- ... -!>);
Commento di pre-esecuzione o di gruppo (#):
Questo tipo di commento viene introdotto con il simbolo "#" a inizio riga.
Indica informazioni prima dell'esecuzione del'azione.
Può essere utilizzato anche per dichiarare un gruppo.
Es. n°1 (pre-esecuzione):
#Necessita di avere $SecurityLock attivo;
Es. n°2 (gruppo):
#Blocco di repeater:
...
#Fine Blocco di repeater;
Commento di funzione (o signolo) (//*):
Questo tipo di commento viene introdotto con la forma "//*" e può esser
utilizzato alla fine di ogni funzione.
Es.:
IF(I=0; //*Se l'input è uguale a 0, l'output è uguale a 0.
O=0);
Commento multilinea generale (<rem!- ... -!>):
Questo tipo di commento viene introdtto con la forma "<rem!-" e viene chiuso con la forma "-!>".
Non ha restizioni di discussione.
Es.:
<rem!- A
B
C -!>
Il costrutto IF...ELSE:
Nella Redstone si fa molto uso delle condizioni, quindi , questo linguaggio si può dire che è BASATO sul COSTRUTTO IF.
Uso del costrutto:
IF(<Condizione[SUB]1[/SUB]> = <Stato[SUB]1[/SUB]>;
<Condizione[SUB]2[/SUB]> = <Stato[SUB]2[/SUB]>;
<Condizione[SUB]n[/SUB]> = <Stato[SUB]n[/SUB]>;
...);
<Effetto>
ELSE(<Condizione[SUB]1[/SUB]> = <Stato[SUB]1[/SUB]>;
<Condizione[SUB]2[/SUB]> = <Stato[SUB]2[/SUB]>;
<Condizione[SUB]n[/SUB]> = <Stato[SUB]n[/SUB]>;
...);
Spesso si trova il caso di indicare una porta logica con le sue condizioni, per non confonderle con quelle di un'altra porta, si deve indicare il NOME.
Es.:
IF(I = 1;
O = 0; 'NOT');
<Effetto>
Si può indicare anche il valore per la porta stessa (solo in caso della porta Not).
Es.:
IF('NOT' = 1);
<Effetto>
Il costrutto REPEAT FROM...TO:
Spesso si ha una ripetizione di una parte in un circuito, per semplificare e non riscrevere
è stato pensato di aggiungere una funzione di ripetizione: il REPEAT.
Questo va sempre seguito dal FROM per indicare dove deve iniziare la ripetizione e il TO
per indicare la fine di essa. Se la ripetizione dovesse finire al REPEAT, si può anche omettere il TO.
Uso del Costrutto:
REPEAT FROM(<NumeroRiga[SUB]1[/SUB]>);
TO(<NumeroRiga[SUB]2[/SUB]>);
Si può anche usare un commento per indicare dove deve iniziare la ripetizione (si consiglia un commento
di gruppo):
REPEAT FROM(<NomeGruppo[SUB]1[/SUB]>);
TO(<NomeGruppo[SUB]2[/SUB]>);
Dirtti:
Redstone Language (RS-L) by Gennaro Landolfi e Carmine Froncillo is licensed under a
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
.Il Linguaggio è open source.
Adesione al progetto:
Per aderire al progetto basta contattare RinoDrummer su Skype (rinodrummer) o semplicemente commentare qui sotto così:
Aderisco al progetto.
Ci sono: 1 Posto di Programmatore Ufficiale e 5 di Traduttore Ufficiale (Inglese, Tedesco, Spagnolo, Francese, Giapponese).
Chi aspira ad essere Programmatore deve poter effettuare chiamate su Skype o almeno poter essere presente ad esse.
Ultima modifica: