This is an old revision of the document!


Tema de casă 2

Termen de predare: 12.01.2014, ora 23:55

Trimitere temă

Tema de casă se trimit sub forma unei arhive ZIP pe mail către:

  • laura.vasilescu@cti.pub.ro ȘI alexandru.radovici@cs.pub.ro

Numele email-ului trebuie să fie de forma: [ATM][2] Prenume Nume. Spre exemplu, email-ul trimis de studentul Jeffrey Ullman se va numi: [ATM][2] Jefferey Ullman.

Numele arhivei trebuie să fie de forma: ATM_Nume_Prenume.zip. Spre exemplu, arhiva trimisă de studentul Jeffrey Ullman se va numi ATM_Ullman_Jeffrey.zip

Arhiva trebuie să conțină:

  • un fișier README care conține numele vostru și detalii despre cum algoritmul folosit în implementarea temei
  • un fișier numit atmbasic.jison în care definiți gramatica folosita de jison
  • un fișier numit atmbasic.js, generat din fișierul atmbasic.jison
  • un fișier numit main.js care implementează logica temei de casă

Enunț

Realizati arborele sintactic pentru limbajul ATM Basic descris mai jos:

  • limbajul are doua tipuri de variabile: numere si siruri de caractere
    • numerele incep cu # (intregi) sau % (fractionare) si continua litere sau cifre
    • sirurile de caractere incep cu @ si continua cu litere sau cifre
  • numele de functii incep cu litere si continua cu litere sau cifre
  • fiecare instructiune este pe o linie separata

Declaratii de variabile

Declaratiile de variabile pot aparea doar la inceputul programului sau ai functiilor. Ele incep cu cuvantul VAR.

VAR @sir - variabila string
VAR #ni, %nf - variabila intreaga, respectiv fractionara

Expresii

Expresiile folosite pot fi:

  • adunari
  • scaderi
  • inmultiri
  • impartiri
  • modulo (cuvantul mod)
  • paranteze

If

If arata in felul urmator: (atentie ELSEIF si ELSE pot lipsi)

IF conditie THEN
  instructiuni
ELSEIF conditie THEN
  instructiuni
ELSE
  instructiuni
ENDIF

WHILE

While arata in felul urmator:

WHILE conditie DO
  instructiuni
ENDWHILE

FOR

FOR arata in felul urmator: (atentie STEP poate lipsi, dupa step urmeaza un numar intreg pasul de incrementare)

FOR #variabila FROM numar TO numar STEP numar
  instructiuni
ENDFOR

Functi

Functiile se declara in felul urmator.

SUB nume lista_parametrii
  instructiuni
ENDSUB

Functiile nu intorc valori.

Apel de functie

Apelul de functie arata in felul urmator:

CALL nume_functie lista_parametrii

Bonus

(1p) Implementati ridicarea la putere in expresii (1p) Implementati restrangeti expresiile constante (1p) Implementati valoare de intoarcere a functiilor

Testare

In curand

cpl-atm/tema2.1387434677.txt.gz · Last modified: 2013/12/19 08:31 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0