2011-07-25 40 views
12

LOGO programlama dili için BNF veya EBNF'yi nereden alabileceğimi bilen var mı?LOGO programlama dili için EBNF veya BNF

+4

Değil emin olarak, popüler bir uygulama kaynağına bakmak olasılıkla gerçek değildir. "Programlama dili" başlığında bile ... –

+0

Bu göründüğü gibi Reddit yolunda, bunu şimdilik koruyorum (birkaç gün içinde korunmasız olacak). Sorun değil, _yet_, sadece bir önlem. –

+3

@Tim Post Bu, reddit programlama altdizciliğini yaptı, bunun neden alarm olduğunu göremiyorum. Yeni kullanıcıları çekmek için iyi bir fırsat olabilir mi? – ArtB

cevap

12

A BNF dilbilgisi kolay bir iş (Böyle bir proje üzerinde çalışarak) değil tarihsel/mevcut uygulamasıyla doğru uyumlu bir LOGO yazılıyor ...

bazı durumlarda çok kullanışlı olmayabilir. Sorun, çözümleyicinin tam işi yapmaması ve değerlendiricinin (yorumlayıcı) kısmi verilerle çalışması gerektiğidir. Bu örneği ele alalım:

PROC1 ab PROC2 C

O (c, b, PROC2()) sayısına göre Proc1 (a, b, PROC2 (c)) ya da Proc1 anlamına gelebilir proc1 & proc2 için parametreler. Dahası, Berkely LOGO gibi bildiğim LOGO tercümanları, her bir prosedüre ve onun nesline erişime sahip olan geleneksel bir ayrıştırıcıyı yazmamak için şerefsiz bir bakış açısına sahiptir; bunun yerine prosedürleri yürütürler ve prosedürler ihtiyaç duydukları parametre sayısını 'tüketirler'. Bu, ayrıştırıcıyı biraz naif yapar ve ana rol bir tercümanınkidür ve böylelikle ayrıştırma olağandışıdır.

+0

Yani, açık olan dil için bir dilbilgisi olamaz mı? –

+0

Evet, bence bu tür bir dilbilgisi (belirsizliğe bakılmaksızın) mevcut değil, çünkü çoğu zaman olduğu gibi komut dizesini ayrıştıran ve yalnızca infix operatörlerini ve benzeri –

+0

'u çözen bir naif dilbilgisi yok, bir naif ayrıştırıcı sadece dilbilgisine göre ayrıştıracaktı ama yerleşik fonksiyonların * aritliğini * anlamazdı. Ayrıştırma yapılırken, başarılı belirteçlerin nasıl ayrıştırılacağına karar vermeden önce işlevin * aritliliğine * bakması gerektiği görülecektir. Aynı zamanda dediğiniz gibi, "giderken ayrıştırmak" için de daha anlamlı olur. –

2

Standart LOGO uygulaması yoktur.

En iyi çağrı böyle konu dışı olarak bu kapatma yönünde oy UCBLogo