Gönderen Konu: C=++ Compiler 0.1.0  (Okunma sayısı 14733 defa)

C=++ Compiler 0.1.0

« : 06.04.2007 10:16:52 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
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

C=++ Compiler 0.1.0

« Yanıtla #1 : 06.04.2007 10:28:21 »
Hızlı düğmeleri aç

GnoStiC


  • Ziyaretçi
calismandan dolayi tebrik ediyorum. :clap:

C=++ Compiler 0.1.0

« Yanıtla #2 : 06.04.2007 12:10:12 »
Hızlı düğmeleri aç

atiflz

İleti: 246

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://izleyenkisi.blogspot.com/
Harika! Manyaksın olum.:eek:
Hemen deniyorum. Nightlord, hastasıyız, takipçisiyiz.

C=++ Compiler 0.1.0

« Yanıtla #3 : 06.04.2007 12:34:00 »
Hızlı düğmeleri aç

Bakkada

İleti: 1.073

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
Tebrikler Nightlord , her ne kadar ben tamamen kendimi geri ceksemde code olayindan gelismeleri gormek sevindirici...

C=++ Compiler 0.1.0

« Yanıtla #4 : 06.04.2007 14:36:00 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
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.

C=++ Compiler 0.1.0

« Yanıtla #5 : 06.04.2007 14:44:51 »
Hızlı düğmeleri aç

vigo


  • Ziyaretçi
süper! heyecanla win32 edition'ı bekliyorum

C=++ Compiler 0.1.0

« Yanıtla #6 : 06.04.2007 15:41:49 »
Hızlı düğmeleri aç

tesla

İleti: 426

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://
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.

C=++ Compiler 0.1.0

« Yanıtla #7 : 06.04.2007 15:45:55 »
Hızlı düğmeleri aç

Decipher

İleti: 482

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://beskrajnost.com
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 :)
100% pure coder pr0n

C=++ Compiler 0.1.0

« Yanıtla #8 : 06.04.2007 17:05:30 »
Hızlı düğmeleri aç

vigo


  • Ziyaretçi
benim gba introlar hep ham'da yaptıklarımdı

C=++ Compiler 0.1.0

« Yanıtla #9 : 06.04.2007 17:33:18 »
Hızlı düğmeleri aç

Bakkada

İleti: 1.073

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
Alıntı yapılan: vigo;13835
benim gba introlar hep ham'da yaptıklarımdı

 
Nerde o introlar mesela?

C=++ Compiler 0.1.0

« Yanıtla #10 : 06.04.2007 19:49:03 »
Hızlı düğmeleri aç

ghost

İleti: 86

Çevrimdışı
  • **
  • Jr. Member
    • Profili Görüntüle
    • http://www.bronxwhq.org
biravo ne guzel. nerden aklina geldi bunu yapmak peki? hani yok diye mi yaptin yoksa icinde ukte mi kalmisti yillardir?
he moves like a madman as he spins his disc.

C=++ Compiler 0.1.0

« Yanıtla #11 : 06.04.2007 20:04:04 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
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

C=++ Compiler 0.1.0

« Yanıtla #12 : 06.04.2007 21:56:56 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Alıntı yapılan: Bakkada;13838
Nerde o introlar mesela?
Mesela 7D4 demo compo entrysi :)

C=++ Compiler 0.1.0

« Yanıtla #13 : 06.04.2007 22:45:58 »
Hızlı düğmeleri aç

GnoStiC


  • Ziyaretçi
(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.. :(

C=++ Compiler 0.1.0

« Yanıtla #14 : 07.04.2007 02:01:07 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@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 :)