2013-06-15 20 views
8

Bir dili öğrenmek için yola koyulduğumda, yaptığım ilk şey, bu dilde yazılan (derlenmiş bir program veya komut dosyası olabilir) yazdırılabilir bir dosya oluşturur. Dünya' ve bir satır stdout'a: 'Merhaba, dünya' GNU smalltalk'ı derleme

[email protected]:~/Code$ ./hello 
hello, world 

GNU Smalltalk mucking yaklaşık bir saat sonra, bunun nasıl dışarı bulamadı.

Ben Smalltalk hiçbir ana hat var olduğunu anlamaya (Ben merhaba dünya programı

'hello, world' printNl 

Bu benim stdout'u gereksinimlerini karşılamak için de bu durum oturumu içinden ifade edilebilir olduğunu biliyoruz). Bu yüzden, bunun gerçekleşmesi için ne tür bir kazan plakasının gerekli olabileceğini merak ettim. Yine, dosyanın mutlaka derlenmesi gerekmemektedir, ancak egzersizin son sonucu, yukarıdaki oturum ekstresi ile sonuçlanan smalltalk kodu olmalıdır.

PS. yesyesyes 'u "görüntü tabanlı programlama" felsefesini benimseyerek yanlış yaptığımı biliyorum. Umrumda değil. Resim ve IDE ile nasıl çalışılacağını öğrenmek zorunda değilim, ama şu anda gerçekten çok az ilgim var. Benim umursadığım şey Smalltalk dilinin kendisi. Sözdizimsel, felsefi ve yazımsal olarak oldukça güzeldir. Komut satırı tercümanından ve bir metin editöründen programlama dilleri öğrenmeyi rahat hissediyorum. :)

cevap

12

GNU Smalltalk'ta, hemen hemen hiç boilerplate yoktur. Sadece bir .st dosyasında tek bir satır koymak ve ifadeleri bir sınıf kullanarak yerine doğrudan idam keşfetmek istiyorsanız gst hello.st

ile çalıştırabilir, o gst geçirilen bir dosyada ardından çok kolay - bir/beyan sınıfını derlemek ve ikinci iki ayrı dosyalar halinde yukarıdaki liste bölünmüş böylece

Object subclass: Hello [ 
    greet [ 
      'Hello, World' displayNl 
    ] 
]. 
greeting := Hello new. 
greeting greet. 

Dosyalar, ayrıştırılır ve sırayla yürütülür komut satırında gst geçirilen: hile olacaktır onu çalıştırmak için.

Programınızı geliştirdikten sonra, sınıflarınızı yükledikten sonra görüntünün anlık görüntüsünü almak için -S bayrağını gst olarak kullanabilirsiniz, böylece derleme ek yüküne her seferinde sahip olmazsınız ve bunun yerine başlangıç ​​ifadenizi çalıştırabilirsiniz. . el GST'ye geçmek istemiyorsanız dosyanızın üst kısmında #! /usr/bin/gst -f koyabilirsiniz böylece

gst da, mesele desteği vardır. (gst konumunu kodlamadan nasıl yapılacağı da dahil olmak üzere daha fazla bilgi için invocation belgesine bakın)