2013-06-15 3 views
8

언어를 배울 때마다 가장 먼저 할 일은 해당 언어로 작성된 실행 파일을 생성하는 것입니다 (컴파일 된 프로그램이나 스크립트 일 수 있음). print 'hello , 세계와 줄 바꿈 표준 출력 : 'hello, world'컴파일하기 GNU smalltalk

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

GNU 스몰 토크와 주변의 일 처리의 약 한 시간 후, 나는이 작업을 수행하는 방법을 발견하지 않았습니다.

나는 스몰 토크에는 주류가 없다는 것을 이해 (나는 안녕하세요 세계 프로그램은

'hello, world' printNl 

이 내 표준 출력의 요구 사항을 충족하지 않는 한 세션 내에서 표현 될 수 있다는 것을 알고). 따라서 어떤 일종의 상용구가 가능해질 지에 대해서는 상당히 흥미가 있습니다. 다시 말하지만 파일을 반드시 컴파일 할 필요는 없지만 연습의 최종 결과는 위 세션에서 추출되는 작은 토크 코드 여야합니다.

추신. yesyesyes 나는 "이미지 기반 프로그래밍"철학을 받아들이지 않음으로써 내가 잘못하고있는 것을으로 알고 있습니다. 나는 상관 없다. 나는 이미지와 IDE 및 모든 것을 다루는 방법을 배우는 것에 반대하는 것이 아니라, 지금 당장은 최소한의 관심을 가지고 있습니다. 제가 신경 쓰는 것은 스몰 토크 언어 그 자체입니다. 구문 학적으로, 철학적으로 그리고 활판 상으로는 오히려 아름답습니다. 나는 커맨드 라인 인터프리터와 텍스트 편집기에서 프로그래밍 언어를 익히는 것이 편안하다고 느낀다. :)

답변

12

GNU 스몰 토크에서 보일러 플레이트는 거의 없습니다. 당신은 다만 .ST 파일에 한 줄을 놓고, 당신이 문을 클래스를 사용하는 대신 직접 실행 탐구하려는 경우 gst hello.st

그것을 실행할 수 있습니다, 그 다음은 gst에 전달되는 파일에 다음과 너무 쉽다 - 한/선언 클래스를 컴파일하고, 두 번째 두 개의 별도의 파일로 위의 목록을 나눌 수 있도록

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

파일을 구문 분석하고 순차적으로 실행되는 명령 행에서 gst에 전달 : 트릭을 할 것입니다 실제로 그것을 실행합니다.

일단 프로그램을 개발하면 클래스로드 후 이미지를 스냅 샷하기 위해 -S 플래그를 g 용할 수 있으므로 매번 컴파일 오버 헤드가 발생하지 않고 대신 시작 진술을 실행할 수 있습니다 .

gst도 새틴 (shebang)을 지원하므로 수동으로 gst에 전달하지 않으려는 경우 파일 상단에 #! /usr/bin/gst -f을 넣을 수 있습니다. (gst의 위치를 ​​하드 코드하지 않고 수행하는 방법을 포함하여 invocation에 대한 자세한 내용은

을 참조하십시오.