MIT Logo 소개: 거북이 그래픽으로 배우는 Lisp 계열 언어의 대화형·확장형 설계
- Logo는 학습 도구로 설계한 Lisp 방언이며, 대화형 실행·모듈성·확장성·유연한 자료형 처리를 교육 목표에서 도출한 언어임
- 대부분의 Logo 구현은 인터프리터 방식으로 한 명령씩 즉시 결과와 오류를 보여주며,
fowad에는 알 수 없는 단어라고 알리고 인자 없는forward에는 입력이 부족하다고 설명함 to와end로 작은 프로시저를 정의하며,square를flower에,flower를garden에 넣듯 사용자 정의 단어를 기본 명령과 같은 방식으로 조합함- Logo는 단어와 리스트를 다루고 숫자도 단어로 취급하며,
word "3 "4는34를 만들고12 + word "3 "4는46을 출력하는 동적 자료형 처리를 보임 - 일부 구현은 기능을 확장했으며, MicroWorlds Logo와 LEGO Control Lab은 여러 프로세스를 동시에 실행하고 StarLogo는 더 대규모 병렬 실행을 지향함
Hacker News opinions
폴란드 초등학교 7학년쯤 로고 경진대회에서 못 이긴 게 아직도 좀 분함. 학교판에는 문서가 없어서 예제로만 배웠고, 2000년대 폴란드에서는 인터넷도 흔하지 않았음.
나는 8살에 LOGO로 프로그래밍과 CAD를 처음 배웠음.
ZX Spectrum+에서 거북이로 원하는 도형을 그리려다 시간을 엄청 썼음. 아직 살아 있는 언어라는 게 신기한데, 지금은 Scratch가 대체로 그 자리를 차지한 듯함.
내가 아는 X세대 프로그래머 대부분은 1970년대나 1980년대 초에 로고를 배웠음. 입문 언어로 정말 좋았지.
나는 로고 역사를 쓰고 있는데, 1970년대에 널리 쓰였다는 근거는 1970년대 말 이전에는 찾기 어려웠음. 정확히 어느 해를 말하는 건지 궁금함.
나도 flower와 garden 예제 때문에 소프트웨어 엔지니어가 된 셈임. 기본 단어로 새 단어를 만들고, 그 새 단어를 다시 조합하는 방식이 계속 기억에 남았음.
초등학교 때 프로그램을 저장하려고 엄마가 3.5인치 디스크를 사줬음. 거북이 그림을 반복하다가 함수를 쪼개 재사용하는 법을 배우고 있었는데, 그때는 그게 프로그래밍 기초인 줄 몰랐음.
우리 학교는 저장 기능이 막힌 데모판이라 반은 거북이를 만지고 반은 코드를 종이에 적어 과제로 냈음.
내 첫 언어도 Logo였음. 1MHz Commodore 64에서 명령이 느린 걸 이용해 불꽃놀이가 그려지는 애니메이션처럼 보이게 만들었음.
Berkeley Logo도 초기에 배운 언어 중 하나임. 함수를 to로 선언하는 문법은 별 차이 없지만 지금도 재미있는 관점이라고 생각함.
7살 때 Terrapin Logo로 초등학교 Apple IIe 화면을 육각형으로 빈틈없이 채웠음. 그 뒤로는 계속 내리막이었지만.
1983년에 우리 초등학교가 Logo 시범 프로그램에 들어가 Commodore 64 실습실을 쓸 수 있었음. Logo는 프로그래밍뿐 아니라 Lisp 계열의 대화형 동적 언어라는 점 때문에 지금 코드를 생각하는 방식에도 영향을 줬음.
기억으로는 Logo에 람다와 재귀가 있었음. 1980년대 아이들이 Lisp에 아주 가까이 갔던 셈임.
Logo는 Lisp에서 직접 영감을 받았고, 첫 구현도 Lisp로 작성됐음.
텍스트를 흰 배경에 아주 연한 회색으로 쓰지 않았으면 함. 굵게 해야 겨우 AA 기준에 걸리는 수준임.
Logo는 구현체가 너무 많아 가장 폭넓게 이식된 언어 중 하나일 듯함. 목록에는 310개 버전까지 나옴.
1980년대에 펜을 단 Logo 프로그래밍 로봇을 큰 종이 위에서 움직인 기억이 있음. 아마 Turtle 로봇 계열이나 Valiant Roamer 같은 변종이었을 것 같음.