tr-demoscene

the scene => c64 => coding => C=++ => Konuyu başlatan: nightlord - 06.04.2007 10:16:52

Başlık: C=++ Compiler 0.1.0
Gönderen: 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
Başlık: C=++ Compiler 0.1.0
Gönderen: GnoStiC - 06.04.2007 10:28:21
calismandan dolayi tebrik ediyorum. :clap:
Başlık: C=++ Compiler 0.1.0
Gönderen: atiflz - 06.04.2007 12:10:12
Harika! Manyaksın olum.:eek:
Hemen deniyorum. Nightlord, hastasıyız, takipçisiyiz.
Başlık: C=++ Compiler 0.1.0
Gönderen: Bakkada - 06.04.2007 12:34:00
Tebrikler Nightlord , her ne kadar ben tamamen kendimi geri ceksemde code olayindan gelismeleri gormek sevindirici...
Başlık: C=++ Compiler 0.1.0
Gönderen: skate - 06.04.2007 14:36:00
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.
Başlık: C=++ Compiler 0.1.0
Gönderen: vigo - 06.04.2007 14:44:51
süper! heyecanla win32 edition'ı bekliyorum
Başlık: C=++ Compiler 0.1.0
Gönderen: tesla - 06.04.2007 15:41:49
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.
Başlık: C=++ Compiler 0.1.0
Gönderen: Decipher - 06.04.2007 15:45:55
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 :)
Başlık: C=++ Compiler 0.1.0
Gönderen: vigo - 06.04.2007 17:05:30
benim gba introlar hep ham'da yaptıklarımdı
Başlık: C=++ Compiler 0.1.0
Gönderen: Bakkada - 06.04.2007 17:33:18
Alıntı yapılan: vigo;13835
benim gba introlar hep ham'da yaptıklarımdı

 
Nerde o introlar mesela?
Başlık: C=++ Compiler 0.1.0
Gönderen: ghost - 06.04.2007 19:49:03
biravo ne guzel. nerden aklina geldi bunu yapmak peki? hani yok diye mi yaptin yoksa icinde ukte mi kalmisti yillardir?
Başlık: C=++ Compiler 0.1.0
Gönderen: nightlord - 06.04.2007 20:04:04
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
Başlık: C=++ Compiler 0.1.0
Gönderen: skate - 06.04.2007 21:56:56
Alıntı yapılan: Bakkada;13838
Nerde o introlar mesela?
Mesela 7D4 demo compo entrysi :)
Başlık: C=++ Compiler 0.1.0
Gönderen: GnoStiC - 06.04.2007 22:45:58
(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.. :(
Başlık: C=++ Compiler 0.1.0
Gönderen: skate - 07.04.2007 02:01:07
@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 :)