Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-11-2005, 19:34   #1
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
[SPIKE] Parser per un semplice linguaggio

Mi serve uno spike per esplorare diverse soluzioni del seguente problema:

Scrivere un parser per un semplice linguaggio che accetti comandi del tipo:

play sound XXX
play animation YYY
wait 10 seconds
draw XXXX at (X, Y)

Molto probabilmente non serviranno loop o branch complicati.

Vorrei analizzare le seguenti possibilita':

- scrivere il parser a mano
- usare librerie di parsing gia' fatte (ANTLR e' il piu' promettente: http://www.antlr.org/)
- usare un linguaggio tipo Jython, o integrare LUA o Ruby

Chi si offre volontario?

Ultima modifica di fek : 19-11-2005 alle 20:00.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 01:44   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
IO!!! O.o'
mi piace un sacco l'argomento del parsing, è logica pura, ferrea e brainfucking!!
se mi spieghi di preciso la sintassi vorrei provare io scrivendo il parser a mano
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 09:39   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Anche a me piace l'idea, ma mi chiedevo: scriverlo in Python o Ruby a cosa servirebbe? In fondo andrebbe integrato con un progetto scritto in Java! (perdonate la niubbagine )
E, infine, mi chiedevo: si potrebbe provare a scriverlo in C++, in modo da utilizzare un linguaggio con una sintassi che si avvicina leggermente a Java?
Spero di non aver sparato solo ca**ate.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 11:21   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
IO!!! O.o'
mi piace un sacco l'argomento del parsing, è logica pura, ferrea e brainfucking!!
se mi spieghi di preciso la sintassi vorrei provare io scrivendo il parser a mano
Abbiamo un volontario.
La sintassi del linguaggio te la inventi, quelli sono degli esempi. Ovviamente Jocchan ti dara' molte dritte su quello che potrebbe servrigli in futuro. E' uno spike e non un task perche' ancora non abbiamo un'idea precisa di cio' di cui abbiamo bisogno e di una possibile soluzione.

Valuta molto seriamente ANTLR perche' sono gia' disponibili i task per Ant per automatizzare la creazione dello scanner e del parser a partire dalla grammatica direttamente dal nostro build script.

Divertiti
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 11:25   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
Anche a me piace l'idea, ma mi chiedevo: scriverlo in Python o Ruby a cosa servirebbe? In fondo andrebbe integrato con un progetto scritto in Java! (perdonate la niubbagine )
E, infine, mi chiedevo: si potrebbe provare a scriverlo in C++, in modo da utilizzare un linguaggio con una sintassi che si avvicina leggermente a Java?
Spero di non aver sparato solo ca**ate.

ciao
L'idea di un linguaggio di scripting per un gioco come il nostro e' l'essere SEMPLICE tanto da non richiedere alcuna nozione di programmazione per essere usato. Non e' proprio il caso di C++

Python e Ruby potrebbero essere soluzioni interessanti. Ad esempio in Fable hanno deciso di usare LUA per lo scripting e per tutto il game code; e' una soluzione interessantissima, ma credo che non si adatti ad un progetto semplice come il nostro. Ed inoltre Python e Ruby potrebbero essere troppo complessi per chi e' a totale digiuno di programmazione.

Ti vuoi occupare tu di vedere quanto sarebbe complessa una tale integrazione?
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 11:49   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
Valuta molto seriamente ANTLR perche' sono gia' disponibili i task per Ant per automatizzare la creazione dello scanner e del parser a partire dalla grammatica direttamente dal nostro build script.
hum, e allora su cosa mi butto per primo? parser fatto a manina o questo ANTLR?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 12:04   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
hum, e allora su cosa mi butto per primo? parser fatto a manina o questo ANTLR?
Libera scelta tua. Personalmente inizierei da Antlr, ma vorrei esplorare entrambe le possibilita'. Sceglieremo quella che ci fa risparmiare piu' tempo.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 12:57   #8
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
L'idea di un linguaggio di scripting per un gioco come il nostro e' l'essere SEMPLICE tanto da non richiedere alcuna nozione di programmazione per essere usato. Non e' proprio il caso di C++
*ahem*
Ritiro tutto. XD
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 19:51   #9
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112

questo mi sa che assomiglia un pò al linguaggio di scripting utilizzato da ron jeffries per i customer test
o sbaglio?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 21:31   #10
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Interessante. Non vedo l'ora di avere tra le mani qualche spike da guardare. Dite che ce la facciamo ad avere qualcosa con ruby?

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 21:45   #11
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da VICIUS
Interessante. Non vedo l'ora di avere tra le mani qualche spike da guardare. Dite che ce la facciamo ad avere qualcosa con ruby?

ciao
Ruby, anche se consente una libertà totale, probabilmente potrebbe essere troppo complesso per l'uso che faremo di questo linguaggio di scripting.
Forse la cosa migliore è qualcosa di "fatto a mano" o, come ha scritto prima Fek, usare Antlr (che è integrato con Ant).
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 21:52   #12
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Jocchan
Ruby, anche se consente una libertà totale, probabilmente potrebbe essere troppo complesso per l'uso che faremo di questo linguaggio di scripting.
Forse la cosa migliore è qualcosa di "fatto a mano" o, come ha scritto prima Fek, usare Antlr (che è integrato con Ant).
Ma è cosi carino!!!
Uff. Vabbe vediamo che cosa combina 71104.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 22:57   #13
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
il linguaggio usato da ron jeffries era ESTREMAMENTE semplice...
in pratica lo usava per testare un editor xml....
il customer scriveva in un file di testo il testo normale...
e in + aggiungeva i comandi da eseguire...
ad esempio...
*newline
e cose del genere..
in + la posizione attuale del cursore veniva identificata da | che veniva correttamente riconosciuto dal parser....
così facendo il customer poteva testare il tutto senza avere la minima conoscenza di programmazione!
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2005, 23:17   #14
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da ^TiGeRShArK^
il linguaggio usato da ron jeffries era ESTREMAMENTE semplice...
in pratica lo usava per testare un editor xml....
il customer scriveva in un file di testo il testo normale...
e in + aggiungeva i comandi da eseguire...
ad esempio...
*newline
e cose del genere..
in + la posizione attuale del cursore veniva identificata da | che veniva correttamente riconosciuto dal parser....
così facendo il customer poteva testare il tutto senza avere la minima conoscenza di programmazione!
Bingo! ^_^
Il nostro linguaggio di scripting deve anche consentire di creare, ad esempio, delle cutscene tra uno stage e l'altro dello story mode, più molto altro (creare situazioni di gioco complesse per i vari test, e - perchè no? - anche di cambiare qualche regola del gioco per aggiungere facilmente nuove modalità).
Deve essere, insomma, flessibile, ma non troppo complesso, ed utilizzabile anche da chi ha conoscenze blande di programmazione... un'utopia? Credo proprio di no
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 09:58   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ho dato un'occhiata ad ANTLR ed è MOLTO promettente (una figata per chi sviluppa linguaggi ).

Non so di preciso quali sono gli obiettivi di questo linguaggio di script (Jocchan, sei stato troppo generico. ), quindi quali sono tutte le tipologie di istruzioni che dovranno essere presenti / supportate, ma penso che un criterio per decidere quale strumento utilizzare si possa abbozzare dalle seguenti questioni:

1) abbiamo bisogno di definire funzioni / subroutine e/o variabili tipizzate e/o espressioni con operatori (o altro)?
2) gli script saranno costituiti tutti da comandi del tipo "Variabile = valore" oppure "Comando [parametro1, parametro2, ..., parametro n]"?

Nel primo caso opterei per ANTLR (o qualche altro generatore di parser "classico", YACC-like).
Nel secondo caso sarebbe sufficiente scrivere un parserino semplice semplice in Java stesso.

Ovviamente la prima soluzione richiede (molto) più tempo della seconda.

P.S. Finalmente m'è tornato il router e sono disponibile la sera o la mattina presto per lavorare a Diamonds. Peccato sia arrivato tardi in questo caso...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 10:02   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cdimauro
1) abbiamo bisogno di definire funzioni / subroutine e/o variabili tipizzate e/o espressioni con operatori (o altro)?
2) gli script saranno costituiti tutti da comandi del tipo "Variabile = valore" oppure "Comando [parametro1, parametro2, ..., parametro n]"?
1) Assolutamente no
2) Ce lo deve dire Jocchan, io propenderei per un linguaggio molto simile all'inglese.


Quote:
P.S. Finalmente m'è tornato il router e sono disponibile la sera o la mattina presto per lavorare a Diamonds. Peccato sia arrivato tardi in questo caso...
Bene, abbiamo un volontario per Jython
fek è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 10:22   #17
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Anche io propenderei per un linguaggio semplice e simile all'inglese, magari con la possibilità di svilupparlo man mano che andiamo avanti.
Insomma, se volessimo iniziare dalla parte dedicata alle cutscene, potremmo partire dall'introduzione di comandi come:

- wait (xx) <--- inutile spiegarlo
- show bg (personaggio) <--- mostra lo sfondo del personaggio dato
- dialogue (nomepersonaggio) (testo) <--- mostra una finestra con dei dialoghi in basso ed una gif "nomepersonaggio.gif" per l'intestazione della finestra
- show character (codice) (nomepersonaggio) (xx, yy) <--- mostra un pg alle coordinate date dandogli un codice identificativo
- move character (codice) (coord.destinazione) (velocità) <--- semplice traslazione fino alle coordinate date, con velocità settabile
- anim character (codice) (xx) <--- mostra l'animazione xx per il personaggio specificato
- delete character (codice) <--- elimina il pg
- show picture (codice) (xx, yy) (trasparenza%) (dimensioni) <--- idem, ma per una png statica con una % variabile di trasparenza
- move picture (codice) (coord.destinazione) (velocità) (trasparenza%) (dimensioni) <--- per spostare e trasformare la png in questione
- delete picture (codice) <--- elimina la png
- show text (coordinate) (font) (testo) <--- mostra del testo generico, con font variabile, allineato a sinistra e partendo dalle coordinate date
- flash screen (colore) (durata) <--- non credo ci sia bisogno di spiegarlo
- shake screen (potenza) (durata) <--- idem

Già con questi comandi, da implementare poco alla volta, si potrebbero creare praticamente TUTTE le cutscene del gioco
Per i comandi relativi al gioco vero e proprio devo valutare bene cosa serve, magari con un pò di consulenza tecnica


Vabbè le cutscene potremmo anche girarle con l'engine di The Movies...
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di Jocchan : 26-11-2005 alle 10:17.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 12:32   #18
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Interessante finalmente qualcosa su cui lavorare un po' mentre gli altri stanno smanettando con i Task
Se non ho niente da fare qusto pomeriggio vedo di tirare fuori qualcosa di funzionate.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 12:59   #19
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ma questo "task" non se l'era accalappiato 71104?

Comunque proporrei una sintassi senza parentesi per gli eventuali argomenti dei comandi. Del tipo:

Show Character 'Luke Skywalker', 320, 240

Simpler is better
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2005, 13:18   #20
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cdimauro
Ma questo "task" non se l'era accalappiato 71104?
Me ne ero scordato. Sara per la prossima volta.

Quote:
Originariamente inviato da cdimauro
Comunque proporrei una sintassi senza parentesi per gli eventuali argomenti dei comandi. Del tipo:

Show Character 'Luke Skywalker', 320, 240

Simpler is better
Visto che ci siamo evitiamo anche le ",". Ci sono gia gli spazi a fare da separatori. Poi per le stringhe proporrei di usare " invece di '. Cosi evitiamo di dover pensare a sequenze di escape se ci serve l'appostrofo.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Nikon Comedy Wildlife 2025: le immagini ...
Il telescopio spaziale James Webb ha cat...
Tesla Roadster? Il re di ChatGPT chiede ...
Pier Giorgio Furcas raddoppia: Vice Dire...
Novità PagoPA: con Klarna:pagamen...
Per il 2026 la Cina eseguirà una ...
AMD mette in naftalina RDNA 1 ed RDNA 2?...
Blue Origin New Glenn: completato lo sta...
SpaceX risponde alla NASA sul lander lun...
Bitcoin compie 17 anni: il Whitepaper ch...
Attenzione agli HDD Western Digital Blue...
MacBook Air M4 a un super prezzo su Amaz...
Dal 12 novembre stretta sui siti porno: ...
Recensione Synology DS725+: tornano i di...
Car of the Year 2026, rivelate le 7 fina...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:41.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v