OTcl
개요 OTcl(Object Tcl)은 스크립트 언어인 Tcl(Tool Command Language)에 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 기능을 추가한 확장 언어이다. 1990년대 중반 매사추세츠 공과대학교(MIT)의 데이비드 웨더올(David Wetherall)에 의해 개발되었으며, 기존 Tcl 문법에 클래스(Class), 인스턴스(Instance), 상속(Inheritance) 등의 개념을 도입하여 소프트웨어 구성의 재사용성과 체계성을 높였다.
특징 OTcl은 동적 타입 언어인 Tcl의 유연함을 유지하면서도 복잡한 시스템 설계를 지원하도록 설계되었다. 특히 C++와 같은 컴파일 언어와 결합하여 사용하기 용이한 구조를 갖추고 있다. 시스템의 핵심적인 연산이나 복잡한 알고리즘은 C++로 구현하고, 사용자가 시스템을 구성하거나 제어하는 시나리오 작성 등은 OTcl을 사용하는 방식의 이중 구조(Dual-language approach)를 취하는 경우가 많다.
주요 활용 OTcl이 가장 광범위하게 사용된 분야는 네트워크 시뮬레이션 소프트웨어인 ns-2(Network Simulator 2)이다. ns-2 내에서 시뮬레이션의 물리적 노드 배치, 프로토콜 설정, 트래픽 생성 등의 환경을 구성하는 인터페이스 언어로 채택되었다. 사용자는 C++로 작성된 네트워크 라이브러리를 직접 수정하지 않고도 OTcl 스크립트를 통해 시뮬레이션 시나리오를 자유롭게 정의할 수 있었다.
현황 네트워크 시뮬레이션 기술의 세대교체에 따라 ns-2의 후속 버전인 ns-3가 등장하면서 OTcl의 활용도는 크게 낮아졌다. ns-3는 OTcl 대신 C++와 Python을 주력 언어로 사용하기 때문에, 현대의 연구 및 개발 환경에서는 주로 과거에 작성된 ns-2 기반의 레거시(Legacy) 코드를 유지보수하거나 참조하는 용도로 제한적으로 활용된다.