GNU 옥타브

위키백과 ― 우리 모두의 백과사전.

옥타브(Octave)는 수치해석용 무료 컴퓨터 프로그램으로, 매트랩(MATLAB)과 호환성이 높다. 옥타브는 GNU 프로젝트의 하나이다. 옥타브는 매쓰메티카같은 컴퓨터 대수 체계가 아니라 과학적 계산을 위한 도구임을 주목해야 한다.

목차

[편집] 역사

이 프로젝트는 1998년 경에 시작되었다. 처음에는 화학반응기의 설계 과목에 대한 지침서가 되길 기대했었다. 1992년 존 W. 이튼(John W. Eaton)이 실질적인 개발을 시작하였으며, 최초의 알파 배포본은 1993년 1월 4일이 나왔으며, 1994년 2월 17일에는 정식버전 1.0이 배포되었다. 2007년 9월 2일 현재 권장버전은 2.9.13이며 이는 이전의 권장버전인 2.1.73과 많은 차이점이 있다.

이름은 음악의 옥타브와 아무런 관련이 없다. 옥타브란 이름은 특정 수치계산 문제의 좋은 근사치를 빨리 내놓는 것으로 유명했던 초기 개발자 중 한명인 옥타브 교수의 이름에서 따온 것이다.

[편집] 기술적인 상세설명

  • 기본적으로 matlab과 동일한 문법을 가지고 작성된다.
  • 옥타브는 STL 라이브러리를 사용한 C++로 쓰여졌다.
  • 옥타브는 옥타브언어를 해석하는 해석기를 갖고있다.
  • 옥타브 자신은 동적으로 로드할 수 있는 모듈을 사용해서 확장할 수 있다.
  • 옥타브 해석기는 gnuplot과 Grace software와 연계해서 표와 그래프, 차트를 만들 수 있고, 그것들을 저장하거나 인쇄할 수 있다.

[편집] 프로그램언어로서의 옥타브

옥타브 언어는 인터프리트 형식의 프로그래밍 언어다. C언어처럼 구조체적 프로그래밍 언어이며 많은 일반적인 C 표준 라이브러리 구조체를 지원하고 유닉스 체계의 call과 함수를 지원하도록 확장될 수 있다. 그러나 주소를 이용한 변수참조는 불가능하다.

옥타브 프로그램은 함수요청이나 스크립트의 목록으로 구성된다. 언어는 행렬에 근거하며 행렬 연산용의 다양한 함수를 제공한다. 옥타브는 객체지향 프로그램은 아니지만, 자료 구조체를 지원한다.

문법체계는 매트랩과 매우 닮았으며 신중하게 스크립트를 프로그램하면 옥타브와 매트랩에서 함께 실행될 수 있다. 그러나 세부적인 명령어 특히 플로팅관련은 gnuplot에 전적으로 의지하기 때문에 matlab과 차이를 피할 수 없다. 실제로 octave를 이용한 그래프작성은 gnuplot의 명령에 대한 지식이 필요하며 gset 또는 __gnuplot_set__의 함수를 이용하여 gnuplot에 직접 전달하여야 한다.(버전 2.1.73에서)

옥타브가 GNU GPL하에서 만들어 졌기 때문에, 자유록게 복사되고 사용될 수 있다. 프로그램은 유닉스와 유닉스계열 운영체계하뿐만 아니라 마이크로소프트 윈도시스템에서도 실행된다. 현재 윈도에 설치할 수 있는 버전은 cygwin을 이용하는 것과 cygwin없이 독립적으로 윈도시스템에 설치하는 방법이 있는데 버전 2.1.73에서는 cygwin이 없는 상태에서는 최소한의 cygwin시스템을 구축하는 식으로 설치한다. 두 경우 모두 한글파일명이나 변수의 사용에 문제가 있어 영문으로 된 디렉토리에 접근하는 것이 안전한다.

[편집] 주목할 만한 특징들

명령어와 변수명 완성

탭 완성(TAB completion)을 지원한다. 즉, 명령 라인에서 처음 몇 글자만 입력한 상태에서 탭(TAB)문자를 입력하면 입력된 글자 시작이 일치하는 변수와 함수, 파일명을 완성한다.

명령어 기록

인터렉티브 모드로 실행할 때, 옥타브는 기존에 입력한 명령어를 내부 버퍼에 저장하고 있으며, 이렇게 기록된 명령어는 나중에 편하게 불리어 다시 쓰일 수 있다.

자료 구조

옥타브는 몇가지 자주 사용하는 자료구조를 지원한다. 다음은 그 예이다.

octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string";
octave:2> x.a
x.a = 1
octave:3> x.b
x.b =

  1  2
  3  4

octave:4> x.c
x.c = string


이 문서는 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다.