Bud, lo stato degli scambi come lo conosci? con un finecorsa sui binari.
Il finecorsa come lo leggi? con gli s88.
Altra soluzione al problema scambi?
saint ha scritto:Buddace: ottima architettura.
Green: 1) ti manca un'istruzione di salto. GOTO ? Il goto è considered harmful, usarlo bene richiede che "la forza scorra vigorosa in te". 2) Python è un interprete che si genera il suo bytecode 3) Un interprete Python non lo devi scrivere, lo devi linkare (quando dico che Pithon c'è intendevo questo, altrimenti proponevo il LISP di cui scrivi un interprete in un paio di settimane o meno, visto che non lo devi più fare in assembler come il primo). Le sole cose che devi scrivere sono le interfaccie che esportano verso Python quello che vuoi fare utilizzare dallo script. Anche semplice, uno scripting language efficente non è una bazzeccola, e a naso si deve rimanere efficienti.
La mia idea del linguaggio di scripting era
event driven.
Come in VisualBasic, quando succede qualcosa hai una procedura del tipo
OnButtonclick.
Sia chiaro. A me non piace il visual basic e programmo principalmente in asm, però fare una cosa tipo SWITCH per gestire tutti i messaggi non mi piace. In una architettura event driven, il goto non serve assolutamente, semmai una CALL.
Questa è la mia idea. --------------
Gli automatismi entrano in gioco quando succede qualocosa (quindi cambia un flag). Gli oggetti che scatenano il cambiamento di un flag sono principalmente 4:
a) una locomotiva attraversa una barriera ad infrarossi, oppure un sensore ad assorbimento, oppure qualocsa di simile
b) uno scambio si scambia
c) un semaforo cambia colore
d) arriva un messaggio via telegrafo
Quindi si possono creare delle funzioni del tipo
OnSwitchChange oppure
OnLightChange.
Ipotizzo il caso di Buddace
A è un sensore di passaggio.
L'utente, sul suo sinottico, clicca su A col destro e compare un menu a tendina. Tra le varie cose c'è la scelta
automatismo
Gli compare un editbox con qualche fronzolo.
Inizia a scrivere nel suo editbox, che non è nientaltro che il corpo della funzione OnSomething()
Versione OOP
Codice: Seleziona tutto
IF (e.free())
{
ti.Switch(RIGHT);
s1.SetLight(GIALLO | VERDE);
s2.SetLight(ROSSO | VERDE);
}
ELSE
{
IF(d.free())
{
t1.switch(WRONG);
s1.SetLight(GIALLO | VERDE);
s1.SetLight(ROSSO | GIALLO);
}
ELSE
{
s1.SetLight(ROSSO);
}
}
Non scrivo la versione non OOP perchè è banale.
Capito la mia idea?[/b]
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning