의사코드

컴퓨터 과학에서, 의사코드(슈도코드, pseudocodeBJ Furman (29 December 2010). "Notes on Algorithms, Pseudocode, and Flowcharts" . engr.sjsu.edu.)는 프로그래밍 언어의 규칙(할당 연산자, 조건 연산자, 루프 등)과 비공식적이고 일반적인 동작 및 '조건 표기법'을 혼합해 알고리즘의 단계를 설명하는 것이다. 의사코드는 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다. 특정 프로그래밍 언어의 문법에 따라 쓰인 것이 아니라, 일반적인 언어로 코드를 흉내 내어 알고리즘을 써놓은 코드를 말한다. 의사(擬似)코드는 말 그대로 흉내만 내는 코드이기 때문에, 실제적인 프로그래밍 언어로 작성된 코드처럼 컴퓨터에서 실행할 수 없으며, 특정 언어로 프로그램을 작성하기 전에 알고리즘의 모델을 대략적으로 모델링하는 데에 쓰인다.

의사코드는 실제 프로그래밍 언어처럼 엄밀한 문법을 따를 필요가 없기 때문에 다양한 변종이 존재한다. 그러나 보통 사용자가 많은 C나 리스프, 포트란 프로그래밍 언어 등의 문법을 본딴 모양이 많다. 엄밀한 묘사가 불필요한 부분에는 자연어가 자유롭게 쓰이기도 한다.

컴퓨터 과학의 전공 서적에서는 다양한 언어 구사자들이 모두 이해할 수 있도록 특히 의사코드를 많이 사용하여 설명한다. 또한 보통 의사코드는 저자마다 그 문법이 다르기 때문에, 책의 서두에는 의사코드의 문법이 간략히 설명되어 있기도 하다.

 예 
의사코드의 예는 다음과 같다.

포트란 스타일 의사코드
program fizzbuzz
Do i = 1 to 100
    set print_number to true
    If i is divisible by 3
        print "Fizz"
        set print_number to false
    If i is divisible by 5
        print "Buzz"
        set print_number to false
    If print_number, print i
    print a newline
end do 
파스칼 스타일 의사코드
procedure fizzbuzz
For i := 1 to 100 do
    set print_number to true;
    If i is divisible by 3 then
        print "Fizz";
        set print_number to false;
    If i is divisible by 5 then
        print "Buzz";
        set print_number to false;
    If print_number, print i;
    print a newline;
endC 스타일 의사코드

void function fizzbuzz
For (i = 1; i<=100; i++) {
    set print_number to true;
    If i is divisible by 3
        print "Fizz";
        set print_number to false;
    If i is divisible by 5
        print "Buzz";
        set print_number to false;
    If print_number, print i;
    print a newline;
}

수학 스타일 의사코드:

Return 

 같이 보기 
 순서도
 문학적 프로그래밍
 참고 문헌 
Justin Zobel (2004). "Algorithms" in Writing for Computer Science (second edition). Springer. .

 각주 

분류:컴퓨터 프로그래밍
분류:소스 코드
분류:알고리즘 기술 언어