ComputerProgrammingwithGNUSmalltalk:4.0

From 흡혈양파의 번역工房
Jump to: navigation, search

머리말-04

여태까지 봐왔던 프로그램은 입력한 코드 순서대로 한 줄씩 수행하였습니다. 그러나 실제 삶은 그렇지 않습니다. 우리는 성장해야하고, 어떤 결정을 내리기도 해야합니다. 프로그램은 현실 세계 문제의 모방체이기 때문에 판단력을 요하는 순간이 옵니다. 결정은 코드가 비순차적으로 실행되게 만듭니다. 어떤 코드는 판단에 의해 실행될 것이며, 또 어떤 코드는 전혀 실행되지 않기도 할 것입니다. 예를 들어, 날씨가 춥다면 외투를 입어야 할 것이고, 춥지 않다면 입지 않아야 할 것입니다.


결정을 내리는 것이 프로그램의 실행을 제어하는 것의 전부가 아닙니다. 반복도 있습니다. 반복은 실생활에선 없는 것이지만 프로그래밍 언어가 존재하는 가장 큰 이유입니다. 예를 들어, 여러분이 어떤 작업을 수 천번 하길 원한다고 합시다. 가장 먼저 떠오르는 문제는 수학문제입니다. 1에서 1000억까지의 수 중에서 씨수를 모두 찾고 싶다고 합시다. 건강을 생각해봐도, 종이와 연필로 구한다는 것은 확실히 좋지 않습니다. 대신 수가 소수인지 아닌지를 알아내는 알고리즘을 개발하여서, 1부터 1000억까지의 숫자에 대입해보면 됩니다. 이 문제의 답은 요즘 컴퓨터를 사용하면, 아무런 계산 실수 없이 몇 밀리초만에 풀어버릴 수 있습니다.


따라서 제어를 하는 방식으로 선택과 반복, 두 가지 형식이 있습니다. 선택 제어selective controlling는 조건에 따라 코드 중 일부분을 선택하여 수행합니다. 그리고 반복 제어repetitive controlling는 코드 중 일부를 계속 반복한다는 것입니다.


GNU 스몰토크로 어떻게 선택제어와 반복제어를 하는지 알아보기 전에, 제어 메시지들과 함께 아주아주 많이 사용할 블록block이라는 것에 대해 공부해 봅시다.