E lap tartalma:

1. írásbeli bírálat
2. írásbeli bírálat
Összesítés


1. írásbeli bírálat

A dolgozat szerkesztése, stílusa (max. 5 pont)

Jól áttekinthető, tömör stílusban írt. Néhol a jobb megértést segítette volna egy kicsit részletesebb leírás. 4 pont

A téma irodalmának feldolgozása (max. 10 pont)

Látszik, hogy a témakör irodalmát alaposan átnézte. De pl. a más hasonló rendszerek ismertetésénél nem derül ki, hogy azok pontosan milyen célra készültek. 8 pont

A téma feldolgozási módszerének színvonala (max. 10 pont)

A szerző bebizonyította, hogy jól ismeri a fordítók készítésének problémakörét, az elérhető eszközök alkalmazása során számos egyedi ötletet is alkalmazott. 10 pont

Az eredmények értékelése (max. 10 pont)

A szerző alaposan és objektíven tárgyalja az elkészített rendszer erényeit és hiányosságait is. 10 pont

A kapott eredmények gyakorlati alkalmazhatósága (max. 10 pont)

A dolgozat/munka végterméke, az elkészített Occam elemző jelenlegi sebessége megkérdőjelezi gyakorlati hasznosságát. A másik fontos eredmény, a fordító írása során alkalmazott megoldások más hasonló munkában is felhasználhatók. 8 pont

 

Örömmel olvastam ezt a dolgozatot. A választott téma érdekes és a szerző új ötletekkel, megoldásokkal állt elő a megoldás során. A dolgozat szerkezete tiszta és világos. A túl oldalon olvasható kritikus megjegyzéseim ellenére úgy gondolom, hogy ez egy igen jó színvonalú TDK dolgozat.

Néhány specifikus megjegyzés:

A más hasonló rendszerek leírásánál csak arra tér ki a szerző, hogy azok “elsősorban nem az occambeli fejlesztés további támogatását tűzték ki célul.” Az viszont nem derül ki egyértelműen, hogy akkor mire használják azokat.

Az elemző ismertetésénél megemlíti, hogy a lex/yacc típusú eszközöket azért vetette el, mert a tabulátor pozícióktól függő blokkhatárokat nehéz lenne elemezni. Viszont a megvalósítás leírásánál módszer szerintem probléma nélkül alkalmazható lenne egy lex/yacc-ra épülő elemzőben is.

A kódoló leírásánál egyes részletek nem világosak. Pl. a változók láthatósága a generált C++ kódban nehezen érthető. Az Occam utasítások fordításánál sokat segített volna egy tömör emlékeztető, hogyan működnek ezek az utasítások. Megértem, hogy a szerző célja a tömörség, de mivel az Occam nem egy széles körben ismert nyelv, itt tehetett volna kivételt.

Az értékelés szakaszban a szerző nagyvonalúan lényegtelen részletkérdésnek minősíti az elemző felgyorsítását. A számok tükrében (165 sor—22 perc) egy igen jelentős gyorsításra van szükség és a dolgozatból számomra nem világos, hogy milyen módon lehet ezt elérni.

 

Oláh András, tudományos munkatárs

Ericsson Kft., (1) 437-7781

1998. október 29.

 


2. írásbeli bírálat

From: Peter Verhas
Sent: 1998. November 2. 11:35
To: ’popp@eet.bme.hu’
Subject: TDK bírálat 2/2

 

Surján Gábor Mihály: OCCAM fordítóprogram készítése Prolog nyelven

Bíráló: Verhás Péter

 

A dolgozat rögtön a bevezetőjében egy hibás tézissel indít, miszerint az objektumorientált programozás megvalósítása általában nagy “overheadet” okoz (hogy a dolgozat nyelve Hungarian-e vagy sem az még egy kérdés). Ez nem igaz, és ha még azt is figyelembe vesszük, hogy a szerző által készített program Prolog nyelvű, amely valóban “overheadet” “okoz”, akkor még élesebb a hiba. Mivel a dolgozat erre a tézisre nem épít, ezt nem használja (tulajdonképpen miért kellett ez a mondat?) a dolgozat nagyon jó. A téma leírása, a feladat kitűzése, annak szükségessége érthető, az indokok világosak.

Rendkívül jónak tartom, hogy a szerző nem állt neki teljesen előlröl mindent kifejleszteni, hanem volt bátorsága már kész eszközt, a Janus 2000 igénybe venni. A terméket és szellemi atyját (Molnár Máté) személyesen is ismerem. Meg kell azonban jegyeznem, hogy a 14. oldalon szereplő mondat üzenetével, miszerint (a Janus 2000) “… termék imperatív programozási nyelven (C++) készült el annak minden hátrányával együtt.” nem tudok azonosulni, bár a mondat szigorúan vett tartalma igaz. Ugyanis a Janus 2000 imperatív programozási nyelven (C++) készült el annak minden előnyével és hátrányával együtt. A Janus 2000 egy végfelhasználói eszköz, amely tartalmazza a felhasználói felület kezelését, nagysebességű feldolgozást kell biztosítania, így a C++ nyelv helyett vagy mellett csak igen kevés nyelv jöhetne szóba fejlesztésre.

Az ez után következő mondat, miszerint “Az idén az IQSoft Rt-nél megkezdődött ennek (a Janus 2000-nek. bíráló) áttétele Prologba.” nem igaz. Ismereteim szerint, amelyeket Molnár Mátétól, a Janus 2000 program szellemi tulajdonosától kaptam, az IQSoft csupán a Janus 2000-ben alkalmazható script nyelvet cseréli ki egy Prologban implementált nyelvre a Compaq/Digital-lal való megállapodás keretében. A Janus 2000-et már csak azért sem írhatja újra az IQSoft, mert az nem az IQSoft szellemi tulajdona.

Ettől a két hibától eltekintve a dolgozat gyakorlatilag tökéletes. Az irodalmat alaposan feldolgozza, új eredményeket is felmutat.

 

Összességében az értékelés:

  1. A dolgozat szerkesztése, stílusa: 3
  2. A téma irodalmának feldolgozása: 10
  3. A téma feldolgozásának színvonala: 10
  4. Az eredmények értékelése: 10
  5. A kapott eredmények gyakorlati alkalmazása: 10

 


Összesítés

    Max. (pont) Elért (pont)
Dolgozatra adott pontszámok átlaga   45 41,50
Bírálók 1) 45 40
  2) 45 43
Az előadásra adott pontszámok Tárgyi tudás 10 7,50
  Felépítés 5 3,00
  Technikai előkészítés 3 2,00
  Időgazdálkodás 2 1,50
Dolgozat + előadás   65 55,50
Javasolt helyezés     3
Megjegyzés Javasolt díjösszeg (eFt) 17 12