Alıntı:
> İstersen kodu bozuk haliyle github'a koy öyle bakalım.
Şu an birşeyler yapıp (sorun neden düzeldi en ufak fikrim yok zaten neden sorun çıkmıştı onu da anlayamadım ya) çalıştırabildim. Adres yükleme işlevi ile interpret i birleştirdim. Class içinde tanımlıyordum bazı değişkenleri şimdi direk işlev içinde tanımlayınca daha hızlı oldu.
Meğer load() Lexer sınıfı içindeymiş o yüzden isminin loadLexer() olmasını öneriyorum?
Şöyle bir şey daha olacak yalnız. loadFile diye de birşey ekleyeceğiz bu da txt deki kodu ekleyecek. Bu da loadFileLexer mı olacak?
Alıntı:
>
- lexy() işlevin yine yerel bir değişken ile işlenecek verinin kopyası alınıyor: (auto c = codes.ptr;)
Aslında kopyasını değil dizideki ilk elemanın adresini almak istedim.
[0]
yerine .ptr yaptım.
Alıntı:
>
- İşlenen veri (sanırım?) bir daha işlenmek üzere proccess(Token[] tokens) içinde Parser'ın yereline kopyalanıyor...
Bunu karışıklığa sebep olabilecek şekilde yine aynı isimle yapıyoruz: (this.tokens = tokens;)
Lexer daki tokenlerle artık işimiz kalmadı. O yüzden aynı isimde kaydettim. Verilerin yorumlanmış hali var ki eski halini kim napsın :)
Alıntı:
> Bir de auto startList = []; var ama kullanımıyor sanırım?
Onun orada ne aradığı hakkında en ufak bir fikrim yok :)
Alıntı:
> Özetle, verinin akışı ve isimlerin kısalığı biraz düzene sokulması gerekiyor. Eğer hız istiyorsak bir çok şeyi tek bir yerde halledip gereksiz değişkenlerden uzak durmalıyız.
Bana uyar :) Parser olduğu için hız konusunda çok üstünde durmadım daha çok VM nin hızı üzerinde durdum.
Alıntı:
> Ayrıca kodu optimize ederken bir stack yapısı kurmalıyız. Çünkü diziye doğrudan yapılan bu erişimleri hiç güvenli bulmuyorum. Üstelik çok çok kafa karıştırıcı. Çalışsa da ileride çıkan sorunlarda (-ki çıktı herhalde) sen bile üstesinden gelemeyebilirsin...
Stack yapısı derken neyi kast ediyorsunuz? Çıkan hatanın sebebi diziler değildi. Ama diziler hata veriyordu :D (çok ilginç değil mi) Her ne yaptıysam düzeldi ama :)
Alıntı:
> Son olarak aşağıdaki getItFunctions dizisine bir alternatif bulmamız lazım. Önerim aynı değerleri (delegate ve enum) alan bir stack kurmak. Hatta bu şişen bir diziyse temsilci kullanımını iptal etmeliyiz. Bu temsilciler çok kaynak tüketiyormuş. Keza çağrışımsal dizinin kendisi de kaynak tüketiyor...
Hocam templateleri kullansak daha mantıklı olmaz mı?
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]