Newsgroup: it.comp.lang.c
Titolo: Cercasi aiuto disperatamente.....

Salve,
 sono una studentessa in Ingegneria informatica a Firenze e purtroppo non
sono un'esperta di programmazione.
Per un'esame devo fare una tesina che consiste nell' "inventarmi" un piccolo
linguaggio di programmazione (che devo scrivere in notazione EBNF) con le
funzioni principali di i/o, cicli ecc...più dei comandi specifici per il
calcolo vettoriale (prodotto tra matrici etc..)    Inoltre devo creare un
parser e un interprete di questo linguaggio...insomma un ambiente che
permetta di fare piccoli programmi nel linguaggio creato e vederli
eseguire.......
Inutile dire che non avendo esperienza di programmazione mi sembra un lavoro
un po' complicato e sono quasi disperata!!   Le uniche conoscenze che ho
riguardano il C e ho deciso di usarlo per la realizzazione di questo lavoro.
Se qualcuno può aiutarmi cerco:
         - lavori simili che mi indirizzino sulla strada da seguire
         - titoli di libri che trattano problemi simili,    possibilmente
con esempi e
            listati  C      (anche in inglese)
Qualsiasi altro consiglio o aiuto sarà il benvenuto!!!
Grazie per avermi ascoltato.
Preferirei essere contattata tramite icq o e-mail:
ICQ # :       22444695
E-MAIL:    
vas...@yahoo.it
GRAZIE ANCORA  ^  ^

linguaggio di programmazione (che devo scrivere in notazione EBNF) con le
Ciao Barbara,
Che ne dici di una ridefinizione in piccolo di un linguaggio
pascal-like ?
Ovviamente si tratterebbe di una versione molto ridotta, che non
gestisce puntatori, funzioni, procedure e tutte quelle caratteristiche
"difficili" ma sopratutto "inutili" per te, ma solo :
- tipi base interi (mediante la keyword "integer") ;
- tipi base matrici di interi (mediante la keyword "array[...,...]" )
;
- cicli del tipo "while (...) begin ... end" ;
- assegnazioni a variabili intere e elementi di vettori ;
- controlli del tipo "if (...) begin ... end else begin ... end" ;
- istruzioni base di i/o "read <intero/elemento vettore>" o "write
<intero/elemento vettore/"stringa">" ;
- espressioni matematiche e booleane in cui figurino variabili intere
o elementi di vettori di interi che supportano rispettivamente le
operazioni + * - / e .AND. .OR. .EQ. .LT. .GT. .LTE. .GTE. ;
 
Un sorgente tipo potrebbe essere :
var i, j : integer ;
    m    : array [2,3] ;
begin
  i := 1 ;
  while ( i .LTE. 2 ) 
  begin
    j := 1 ;
    while ( j .LTE. 3 )
    begin
      write "inserisci elemento " ;
      write i
      write ","
      write j
      write \n
      read m[i,j] ;
      j := j + 1 ;
    end ;
    i := i + 1 ;
  end ;
end.
Fammi sapere che ne pensi ...

 piccoli programmi nel linguaggio creato e vederli eseguire.......
  Non e` un compito elementare ed, in primis, ti consiglio di dare
un'occhiata -- anche piuttosto approfondita -- a qualche libro che
tratta di linguaggi formali e compilatori e/o interpreti.
  In seconda istanza, tanto per avere una idea di massima, posso
consigliarti di dare un'altra occhiata a bison(1), un generatore di
parser di grammatiche LALR. Bison, cosi` come YACC, prende in input la
definizione di una grammatica, in un formato molto simile alla (E)BNF ed
una serie di azioni da compiere in determinate situazioni che si
verificano nell'analisi e restituisce in output una funzione C che
provvede all'analisi sintattica stessa.
  Bison e` provvisto di un buon manuale che puo` essere un buon punto di
inizio per la soluzione del tuo problema e lo puoi trovare in porting su
diverse piattaforme: il DJGPP, piattaforma di sviluppo C per DOS, per
esempio, ce l'ha ed anche sotto Linux lo trovi. Alternativamente: YACC,
che ne e` la versione originale.
	Alla prossima,
		Marco

 Preferirei essere contattata tramite icq o e-mail:
noi preferiamo rispondere sulle news !
