tr-demoscene
the scene => c64 => coding => C=++ => Konuyu başlatan: nightlord - 06.04.2007 10:16:52
-
Selam Arkadaslar,
Uzunca bir suredir (1 yildan fazladir) uzerinde calistigim Commodore Plus Plus compileri alfa seviyesine getirmis bulunuyorum. Ozellikle Oyun ve tool gelistirmede assembler ile yan yana kullanilacak bir tool bu. tamamen assembleri replace etmiyor.
Projenin bundan sonraki asamalarini herkese acik bi sekilde yurutmeye karar verdim. Hem yardimlariniza ihtyacim var hem de bu projede pek cok ilginc problem cozmem gerekti ve gerekecek, bunlar simdi ve ileride pekcok kisinin cesitli sekillerde isine yarayabilir. Turkiyede vizir vizir compiler gelistirilmedigi icin bunu herkese acik yapmak mantikli geldi bana.
Bu sebeple sevgili Spazticanin destegiyle forumda bu projeye ozel bir alt forum acildi. projeyle ilgili her turlu soru, cevap, tartisma, destek ve duyurular burada cesitli threadlerde yurutulecek.
Asagidaki linkten projeyi indirebilirsiniz:
http://www.nightnetwork.org/c64/CEPP_RELEASE_0-1-0.ZIP
Bu tool ile ne tip kodlar yazabileceginizi gormek icin test directorysindeki tc001... tc006 arasi testlerdeki cepp dosyalarini inceleyin.
Dil su an tamamen C++ uyumlu syntax olacak sekilde yeniden duzenlendi. Boylece favori editorunuzun syntax highlighter'i veya statik analiz toolarindan, code browserlara kadar hersey calismali.
Calistirmak icin gereksinimleriniz:
- Herhangi bir Linux (Windows surumu cok yakinda - ihtimalen 2 gun)
- flex ve bison paketleri kurulu olmali
- otomatik testleri calistirabilmeniz icin Vice da yapmaniz gereken iki ayar var
---Peripheral Settings/Printer Settings/User Port Printer secili olmali
---Confirm on exit uncheck edilmeli
bundan sonra test directorysine gidip make diyerek toolu build edip su an var olan testleri otomatik run edebilirsiniz. bunun sonunda basarili olan ve olmayan test sonuclari ayni directoryde test_results.txt dosyasinda
toolun kendisi ise src directorysinde. bir adet grammar dosyasi, lex dosyasi ve code_generator.cpp var. inc directorysinde de headerlar var
c++ implementasyonu acisindan su an hayli kazmaliklar var saginda solunda. Buralarin refactor edilisini de yine herkese acik demonstrasyon olarak yapacagim
su an kodlar bana lisansli. Tam aradigim gibi bir open source / creative commons lisas bulana kadar boyle olacak gecici olarak. dosyalardaki copyright notice kafanizi karistirmasin :)
Detayli bir tutorial hazirlamak zaman alacaktir. Fakat C++ bilenler icin kisaca notlar:
- isimlendirme kurallarina dikkat edin doc klasorunde bu kurallar
- syntax error alirsaniz buyuk olasilikla isimlendirme hatasi yapmissinizdir
- classlarda hersey public
- class declare ederken o classtan yaratilacak maksimum obje sayisini vermeniz gerekiyor. bu sayi en fazla 255 olabilir. tc006ya bakin ornek icin
- recursion yapmayin
- esitligin sol tarafinda obje, veya obje->method olabilir
- stackde cByte'dan baska obje yaratamazsiniz. ancak pointer yaratabilirsiniz
- bir metodun icerisinde classin member attributelerine this-> diye erismek zorundasiniz
- bir metoda 2'den fazla arguman gecirilemez
sorularinizi sorun. cevaplamaya calisirim tabii ki
Su anki en onemli eksikler
1- hata raporlama cok zayif. Cogu hataya karsi syntax error on line hodo deyip cikiyor malesef
2- optimizer aktif degil bu yuzden biraz fazla kod uretiyor. tabii basicden hala kat kat hizli
Sevgiler
-
calismandan dolayi tebrik ediyorum. :clap:
-
Harika! Manyaksın olum.:eek:
Hemen deniyorum. Nightlord, hastasıyız, takipçisiyiz.
-
Tebrikler Nightlord , her ne kadar ben tamamen kendimi geri ceksemde code olayindan gelismeleri gormek sevindirici...
-
Oh be sonunda :) Artık Anatolian Governer'ı da yaparsın yakında ;)
Elbette ki projeye full destek vericem. Özellikle hata mesajlarının detaylandırılması gibi ameliye işleri seve seve üzerinden alırım kardeşim.
-
süper! heyecanla win32 edition'ı bekliyorum
-
Böyle bir çalışma için tebrikler. Umarım çok işlere vesile olur ve popüler olur. gameboy da HAM diye bir C derleyicisi vardı. C64 c++ derleyicisini de bizden biri yapıyor. Muhteşem.
-
inanılmaz bir olay ciddi anlamda, ellerine sağlık, bi halt anlamasam da C64'dan (mimari olarak) belki tesadüfen bişiler yapabilirim sayende :)
-
benim gba introlar hep ham'da yaptıklarımdı
-
benim gba introlar hep ham'da yaptıklarımdı
Nerde o introlar mesela?
-
biravo ne guzel. nerden aklina geldi bunu yapmak peki? hani yok diye mi yaptin yoksa icinde ukte mi kalmisti yillardir?
-
heheh gecen sene bir strateji oyununa baslamistim. assemblerda yapmak cok zor oluyordu. ozellikle state machineleri kodlamak ve dinamik olarak obje yaratmak silmek listelere eklemek ve cikarmak. Bu yuzden istedigim gibi bi oyun yapabilmek icin basitlestirilmis bi c++ compiler olsa dedim. yoktu. Ben de nicedir su grammar olsun, lexical analiz olsun, parse tree olsun duyup duyup merak ederdim. Bu vesileyle girelim olaya ogrenelim dedim.
compiler'i bir ay icinde bitirmistim aslinda :) tabi isler oyle degilmis sonradan gordukki. Bu projenin en zor tarafi compiler'in test edilmesi oldu ve olacak. Aylardir bununla ugrasiyorum :)
Guzel yorumlar icin herkese tesekkurler
-
Nerde o introlar mesela?
Mesela 7D4 demo compo entrysi :)
-
(her ne kadar c64'cu olmasamda) c64 yasadigi surece bu compiler'in ilgi goreceginden ve surekli geliseceginden umutluyum..
bende zamaninda soyle bisi yazmistim http://pconhand.com/ohbasic.asp , gel gelelim, yazdigim platform ölunce, bir anlami kalmadi.. :(
-
@Gnos: Hep bahsediyorlardı senin bu tür projelerinden de ilk kez kendi gözümle gördüm. Süper projeymiş. Sen pokemon mini gibi platformlardan çok önce ilgi duymuşsun bu tür abzürt platformlara kod kasmaya. Senden de bir Second Reality OnHand portu bekliyoruz artık :)