Bootstrapping

 

bootstrap 은 '자기 스스로 하는', '자력으로 성공하다', '자주 독립' 이라는 뜻이 있다. AI 시스템에서는 스스로 생각하여서 더 높은 수준의 지능으로 그 자신의 능력을 향상시키는 것 의 의미로 사용된다.

Wikipedia : Bootstrapping : Bootstrapping 은 어떤 시스템이 이미 가지고 있는 기능이 없는 상태에서 그 시스템을 작동시키는 것이다. 독일 소설가 Baron Münchhausen 의 소설에서처럼 bootstrap 에 의해 스스로를 부추기는 것은 불가능한 것처럼 보인다. 그러나 bootstrapping 이라는 해결책은, 복잡한 시스템이 단순하게 작동할 때, 조금씩 더 단순한 것으로 더 복잡한 능력을 개발할 수 있도록 하는 과정이다.

컴퓨터에서 bootstrapping 은 어떤 컴퓨터를 시작시키는 과정으로 booting 보다 더 오래된 개념이다. Bootstrapping 은 또한 성공적으로 더 복잡한 프로그래밍 환경의 개발을 의미하기도 한다. 가장 간단한 환경은 매우 기본적인 텍스트 편집기와 어셈블리 프로그램일 것이다. 이러한 툴을 사용해서 더 복잡한 텍스트 편집기를 작성하고, 고급언어용의 간단한 컴파일러를 작성하고, 결국에는 그래픽 통합개발환경 (IDE) 과 극도의 고급 프로그램 언어를 가지게 될 것이다.

언어학에서의 syntactic bootstrapping 은, 어린이가 단어의 뜻을 배우는데 도움이 되도록 개발된 문법적 지식을 사용하는 것을 의미한다. 즉 의미 (semantics) 는 문법의 정점 (top of systax)에서 구축된다는 것이다. .......

부트스트래핑 : Douglas R. Hofstadter : 컴파일러들이 더욱 정교해짐에 따라서 사람들은 컴파일러 자체의 확장을 위하여 부분적으로 쓰인 컴파일러를 사용할 수 있다고 생각하게 되었다. 다른 말로 하자면, 일단 최소한의 핵심 컴파일러가 쓰여지면, 그 미니 컴파일러는 (자기 입장에서 보면 다시 훨씬 더 큰 컴파일러들을 번역할 수 있고 최종적으로 완성된 컴파일러를 만드는) 더 큰 컴파일러들을 기계언어로 번역할 수 있다. 이런 과정을 사람들은 [자주독립에 맞먹는] "부트스트래핑" 이라고 부른다. 이런 상황은 모국어의 유창한 습득에 임박한 결정적인 시점에 도달한 아이의 상황과 다를 게 없다 : 그 시점에서부터 아이는 새로운 언어를 습득하기 위하여 언어를 더욱 많이 쓰는 가운데, 어휘와 언어 숙련도를 급성장시킨다. .......

물론 그 자체가 하나의 프로그램이기도 한 컴파일러는 일정한 언어로 쓰여야 한다. 최초의 컴파일러들은 기계언어라기보다는 어셈블리 언어로 쓰였다. 그래서 기계언어로부터 진일보한 초기의 이점들을 최대한 활용했다. 이러한 교묘한 관계가 그림에 요약되었다. 어셈블러와 컴파일러는 둘 다 기계언어로의 번역장치이다. 직선으로 된 화살표가 그것을 말한다. 뿐만 아니라, 그것들은 그 자체가 프로그램이기 때문에, 원래는 언어로 쓰였다. 파동형으로 된 줄은 컴파일러가 어셈블리 언어로 쓰일 수 있으며 어셈블러는 기계언어로 쓰일 수 있다는 것을 나타난다.

site :

Bootstrapping Research : Univ. of Washington