[[프로그래밍 언어|'''프로그래밍 언어 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||||||||
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 목록 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록 | |||||||
A | ActionScript · Ada · Agda · ALGOL · APL · awk | |||||||
B | BASIC · Befunge · Brainfuck | |||||||
C | C · C# · C++ · Carbon · Chef · Clojure · COBOL · CoffeeScript · Coq · Crystal | |||||||
D | D · Dart | |||||||
E | Elixir · Elm · emojicode · Erlang · ETA | |||||||
F | F# · Forth · Fortran | |||||||
G | GNU Octave · Go · Groovy | |||||||
H | Haskell · HolyC · HQ9+ · HRON | |||||||
I | ||||||||
J | Java · JavaScript · Julia | |||||||
K | Kotlin · Krait | |||||||
L | Lean · LISP · Lua | |||||||
M | Malbolge · MATLAB · Max · Mojo · Moonlight | |||||||
N | Nim · Nix | |||||||
O | Oberon · Objective-C · OCaml · Ook! | |||||||
P | Pascal · Perl · PHP · Processing · Prolog · Python | |||||||
Q | Q# | |||||||
R | R · Racket · Raku · ReasonML · Ruby · Rust | |||||||
S | Scala · Scheme · Scratch · sed · Shakespeare · Shell Script · Smalltalk · Swift | |||||||
T | TypeScript | |||||||
U | Udon | |||||||
V | Visual Basic · Visual Basic .NET · Visual Basic for Applications · vvvv | |||||||
W | Wave · Whitespace | |||||||
X | ||||||||
Y | ||||||||
Z | ZenScript · Zig | |||||||
한글 | 누리 · 씨앗 · 아희 · 약속 · 엄랭 · 엔트리 · 창조 | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 순위 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -10px" | {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ IEEE Spectrum 2024 ] {{{#!wiki style="margin: -5px -1px" | <tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어 | |||
1 | Python | 1 | SQL | |||||
2 | Java | 2 | Python | |||||
3 | JavaScript | 3 | Java | |||||
4 | C++ | 4 | TypeScript | |||||
5 | TypeScript | 5 | SAS | |||||
6 | SQL | 6 | JavaScript | |||||
7 | C# | 7 | C# | |||||
8 | Go | 8 | HTML | |||||
9 | C | 9 | Shell | |||||
10 | HTML | 10 | C++ | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ Stack Overflow 2024 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#ffa500><colcolor=#fff> 2024년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어 | |||
1 | JavaScript | <colbgcolor=#ffa500><colcolor=#fff> 14 | Rust | |||||
2 | HTML & CSS | 15 | Kotlin | |||||
3 | Python | 16 | Lua | |||||
4 | SQL | 17 | Dart | |||||
5 | TypeScript | 18 | 어셈블리어 | |||||
6 | Bash | 19 | Ruby | |||||
7 | Java | 20 | Swift | |||||
8 | C# | 21 | R | |||||
9 | C++ | 22 | Visual Basic | |||||
10 | C | 23 | MATLAB | |||||
11 | PHP | 24 | VBA | |||||
12 | PowerShell | 25 | Groovy | |||||
13 | Go | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ TIOBE 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#2777c2><colcolor=#fff> 2025년 2월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어 | |||||
1 | Python | <colbgcolor=#2777c2><colcolor=#fff> 11 | Fortran | |||||
2 | C++ | 12 | Scratch | |||||
3 | Java | 13 | Rust | |||||
4 | C | 14 | PHP | |||||
5 | C# | 15 | R | |||||
6 | JavaScript | 16 | MATLAB | |||||
7 | SQL | 17 | Assembly language | |||||
8 | Go | 18 | COBOL | |||||
9 | Delphi / Object Pascal | 19 | Ruby | |||||
10 | Visual Basic | 20 | Prolog | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ PYPL 2025 ] {{{#!wiki style="margin: -5px -1px -10px" | <colbgcolor=green><colcolor=#fff> 2025년 3월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어 | |||
1 | Python | <colbgcolor=green><colcolor=#fff> 11 | Swift | |||||
2 | Java | 12 | Go | |||||
3 | JavaScript | 13 | Kotlin | |||||
4 | C/C++ | 14 | MATLAB | |||||
5 | C# | 15 | Ada | |||||
6 | R | 16 | Dart | |||||
7 | PHP | 17 | Ruby | |||||
8 | Rust | 18 | Lua | |||||
9 | TypeScript | 19 | PowerShell | |||||
10 | Objective-C | 20 | VBA | }}}}}}}}}}}} | }}}}}}}}}}}} | |||
분류:프로그래밍 언어 · 프로그래밍 언어 목록 · 언어별 예제 · 틀:프로그래밍 언어 문법 |
GNU Project | |||
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -6px -1px -10px;" | <colbgcolor=#a32d2a><colcolor=#fff,#fff> 관련 문서 | GNU · 자유 소프트웨어 재단 · 리처드 스톨먼 | |
소프트웨어 | Bash · | ||
<bgcolor=#a32d2a><color#fff> 유틸리티 | coreutils(fileutils · textutils · shellutils) · GNU Grep · GnuPG · GNU Tar | ||
<bgcolor=#a32d2a><color#fff> 개발자 도구 | Autotools(autoconf · automake) · binutils(BFD · as · ld · gold · gdb) · GCC · glibc · GNU Make | ||
라이선스 | GNU 일반 공중 사용 허가서 · GNU 약소 일반 공중 사용 허가서 · GNU Affero 일반 공중 사용 허가서 | ||
기타 | GNU Unifont | ||
|
1. 개요
GNU Octave는 수치연산을 위한 고수준 프로그래밍 언어이자 소프트웨어이다.이름에서 드러나듯 GNU 프로젝트의 하나로 당연히 GPL을 따르는 자유 소프트웨어이며 다른 비슷한 자유 소프트웨어 중 유독 MATLAB과의 호환성이 좋아 매트랩을 공부하고 싶지만 돈이 없는 학생이라거나 매트랩을 구매하기 원치 않을 경우 대용품으로 쓸 만한 편이다.
2. MATLAB과의 문법상의 차이점
- 참고 자료: 영문 위키북스
- 기본적으로 MATLAB과의 문법적 호환성을 염두에 두고 만들어진 프로그램이지만 차이가 몇 있다.
- 그 중 OCTAVE의 문법에 좀 더 유연성이 있어서 생기는 차이가 있다.
- 증감연산자: OCTAVE에서는 C언어 스타일의 증감연산자 (
++
,--
) 나 복합대입연산자 (+=
,*=
,...) 를 사용할 수 있지만 MATLAB에서는 사용할 수 없다. - 부정 논리 연산자: OCTAVE에서는
~
,!
둘 다 사용할 수 있으나 MATLAB에서는~
만 사용할 수 있다. - 함수값을 넘겨주는 괄호
()
와 행렬에서 값을 받아오는 괄호()
를 연달아 쓸 수 있다. 예를 들어 5차 마방진의 두번째 행을 얻고 싶을 때 Octave에서는
{{{#!syntax python
}}}로 쓸 수 있지만, MATLAB에서는
{{{#!syntax python
temp= magic(5);temp(2, :)
}}}와 같이 불필요한 변수
temp
가 필요하다.3. 장단점
주로 매트랩의 대체재 내지는 수치해석용 스크립팅 용도로 사용되는 만큼 여기서는 MATLAB이나 기타 스크립팅 언어들(Python 등)과의 차이점을 위주로 설명한다.3.1. 장점
- 공짜다.
- 이미지 분석 패키지, 유전 알고리즘 패키지 등의 다양한 패키지를 역시 무료로 내려받아 적용할 수 있다.
- Windows는 물론 Mac OS, Linux, 심지어 안드로이드에서도 사용이 가능하다.
3.2. 단점
- 속도가 느리다. 위 표는 C의 수행속도가 1.00일 때 다른 언어의 상대적인 수행속도를 표시한 결과로, 수치가 낮을 수록 좋다. 성능보다는 MATLAB과의 호환성을 중심으로 만들어졌기 때문이긴 하지만 옥타브는 정말 심각하게 느린 편이라 결국 퍼포먼스가 중요한 실무에서 사용하기엔 무리가 있다.
- 당연한 얘기지만 MATLAB에 비해서는 지원하는 기능이 떨어진다. 예컨대 table 자료형은 MATLAB과 같이 지원하지만 이 자료형을 유용하게 만들어주는
readtable
함수는 아직 지원하지 않는다. - 수치해석을 위한 다양한 툴박스를 제공하는 MATLAB에 비해 Octave는 프로그래밍 환경만을 제공해 사용성이 떨어진다.