Newsgroup: it.comp.lang.visual-basic
Titolo: Linguaggio Custom

Buongiorno e buon lavoro a tutti,
devo costruire un interprete di comandi custom, mi spiego meglio...
In un programma devo poter leggere ed eseguire serie di comandi letti da un 
(molti) file(s) (o da un DB).
Si tratta di comandi logici  che devono dare all'utilizzatore la possibilità 
di agire su un set di variabili che potrebbe risiedere o in memoria oppure 
su DB.
I comandi minimi da inserire potrebbero essere
IF THEN
CICLI FOR
WHILE
OPERATORI (+,-,*,/,elevamento a potenza e quindi radici,AND,OR)
OPERATORI FUZZY (e qui vi risparmio i particolari)
VARIABILI e quindi almeno integer boolean double stringhe
VARIABILI FUZZY con tutto il contorno legato a fuzzyficazione e 
defuzzyficazione
ARRAY di quanto sopra
I moduli logici dovrebbero essere valutati ed eseguiti (ad intervalli 
definiti in ogni modulo) in successione e dovrebbero agire sulle variabili 
che, essendo comuni,sarebbero il punto di incontro del tutto.
Vedo due strade:
-- un linguaggio di script
--codice scritto ad hoc praticamente reinventando ruota ed acqua calda...
Siccome però dovrò creare un ambiente di sviluppo facilitato temo che il 
vero lavoro non sia tanto (o solo) l'implementazione diciamo della "logica" 
di lavoro ma la creazione dell'ambiente con tutti i relativi controlli di 
congruità di quello che l'utente decide di scrivere...
Cosa ne pensate?
Per caso qualcuno ha scritto o conosce qualcosa del genere?
Grazie
Tullio1248


CUT
Ciao, hai tempi del vb4 avevo visto in giro un ocx che permetteva di 
inserire
nel proprio applicativo un gestore di script, ma era roba a pagamento e
sinceramene non ricordo altro.
invece sul sito 
www.runbasic.com
 c'è la possibilità di usare programmi
scritti in basic nella pagina web (spiegazione mooooolto alla buona) e tra
gli esempi (codice liberamente visibile) c'è tynibasic, un mini interprete
basic. magari puoi prendere spunto dal quel sorgente...
Saluti,
pusky re delle rane 

 ha scritto nel messaggio 
news:g7nBj.14403$q53....@tornado.fastwebnet.it...

ed usare il microsoft script ....... :-) 

 ha scritto nel messaggio 
news:47d639ba$0$4794$4faf...@reader4.news.tin.it...


 ha scritto nel messaggio 
news:47d6affb$0$36447$4faf...@reader5.news.tin.it...



Onestamente mi sono un po' perso cercando di capire esattamente cosa
vuoi fare, comunque considera questo:
Il suggerimento di usare Microsoft Script e' probabile che
sottointendesse nello specifico di usare il Windows Script Control,
http://www.microsoft.com/downloads/details.aspx?FamilyId=D7E31492-2595-49E6-8C02-1426FEC693AC&displaylang=en
che e' un controllo ActiveX che puo' essere inserito in una
applicazione host per, appunto, fornirle un interprete integrato di
codice VBScript (ma anche JScript se non sbaglio).
Una delle cose particolari di questo componente e' che l'applicazione
che lo ospita puo' passare uno o piu' riferimenti a oggetti istanziati
dall'applicazione stessa e che a loro volta possono essere
referenziati nello script.
Cosa vuol dire questo? che se tu mantieni nel tuo programma (fuori
dagli script quindi) una istanza globale di, per esempio, un oggetto
Dictionary o Collection, puoi passare questo riferimento ogni volta
che inizializzi il controllo, il quale a sua volta puo' essere
istanziato piu' volta dal tuo programma; negli script, ogni volta che
hai bisogno di definire una variabile "globale" questo si traduce in
aggiungere/aggiornare un elemento del Dictionary suddetto. Dato che il
riferimento e' mantenuto all'esterno i valori dovrebbero essere
visibili da tutti gli script (condizionale perche' un meccanismo cosi'
con piu' istanze non l'ho mai provato).

 ha scritto nel messaggio 
news:e33db93f-5e42-4feb...@s8g2000prg.googlegroups.com...


 ha scritto nel messaggio 
news:e33db93f-5e42-4feb...@s8g2000prg.googlegroups.com...



io ho 'giocato' un po' con lo script control ed e' abbastanza potente.
nello specifico ci ho fatto una procedura di stampa programmabile ( 
posso configurare la stampa dei dati di un programma tramite uno script ).
non puoi estendere la sintassi , ergo non puoi aggiungere nuovi 
operatori e/o parole chiave, puoi pero', passandogli delle classi, 
estendere le sub/funzione in maniera che poi appaiano 'native' allo sctipt
non ha ( o almeno non mi sembra ) un controllo della sintassi dello 
script durante l'inserimento ma solo durante l'esecuzione dello script ( 
cosa che non mi piace affatto ma ... )
all'interno del controllo puoi memorizzare un intero gruppo di 
funzioni/subroutine organizzate in moduli da richiamare a piacimento
visto che poi la conconrrenza e la contemporaneita' di esecuzione sono 
comunque concetti abbastanza laschi potrebbe essere anche sufficiente un 
singolo programma che scheduli correttamente i vari task, sempre che ti 
accontenti di avere questi task come atomici cioe' che il successivo 
parta alla terminazione del precedente

 ha scritto nel messaggio 
news:47d8e517$0$36441$4faf...@reader5.news.tin.it...
