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.

Arhiva va fi uploadă folosind un serviciu public de sharing (Google Drive, Dropbox etc.). Trebuie să trimiteți link-ul către locația de unde putem downloada tema de casă.

Trimiterea temei de casă se face prin completarea acestui formular.

Atenție! Nu faceți link-ul public! Dacă ajunge link-ul public, colegii ar putea să se inspire din tema voastră.

Dacă două teme seamănă suficient de mult vor fi considerate copiate.

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

Functii

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.1388764095.txt.gz · Last modified: 2014/01/03 17:48 by laura.vasilescu
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