자료구조(3) - SPARKS
- SPARKS : 알고리즘을 기술하는 언어
: 선언문, 지정문, 조건문, 입출력문 등이 있음
- 선언문
: 여러 가지 형태의 변수를 선언해 자료형(data type)을 사용
- 지정문
: 상수나 변수 또는 연산식의 결과를 변수에 지정하는 문장
P←X; q←0
LINK(p)←Y
q←q+1
: 대입연산자 : ←
: ';' : 같은행의 문장 구분
: LINK(p) ← Y 이건 함수에 변수를 의미하는건가..검색을 해보아도 똑같은 표기만 있고 해석이 없다.
: 산술연산 가능
- 조건문
: 참, 거짓을 판별할 수 있는 조건식을 표현하고,
참인경우 실행하는 문장, 거짓인 경우 실행하는 문장으로 구성
: if~else문, while 문, repeat~until문, case문 등
- 반복문
: 포함한 선언문이 증감식에 따라 반복
: for문, loop~forever문 등
- Procedure문 ( 프로시져 )
: 알고리즘은 하나 이상의 procedure로 구성되고 모든 procedure는 서로 독립적이므로,
procedure간의 정보전달은 매개변수 ( parameter )로 이루어지게 된다.
: 각 procedure들은 서브루틴이나 함수가 될 수 있고, 함수로 사용될때는 return을 통해
결과값을 보여주게 된다.
- 서브루틴과 함수의 차이점
: 서브루틴은 실행만 진행, 함수는 결과값으르 반환
- Procedure간의 자료 전달방법
: 매개변수 ( parameter ) 를 통해 이루어지게되는데 전달 값 또는 방법에 따라 차이가 있다.
: 책에 나온 설명은 전달력이 낮다 생각해 재해석을 할 것으로 원론적인 내용이 궁금하면
검색을 해보길 권한다.
: call by value
: 입력된 변수의 값을 그대로 이용하는 것
: call by reference
: 입력된 변수의 주소를 활용하는 것. 해당 주소의 값에 변화가 다음 활용에도 영향을 가짐
: call by name
: Sub Procedure에서 미지수로 연산을 마치고, 마지막에 계산할떄 값으로 반영
- 입출력문
- 기타 명령과 규칙
: 주석 : //, /* ~ */
: stop문
: 진행중인 알고리즘 중단
: SPARKS 언어의 사용규칙
: 모든 Procedure의 입출력 변수를 명확히 해야한다.
: 변수의 의미를 알 수 있게 정의해야한다.
: 알고리즘의 제어 흐름은 되도록 순차적으로 표현한다.
: 가독성을 위해 문장들은 들여쓰기를 한다.
: 주석은 짧으면서 의미는 명확히 기술해야한다.
: 함수를 적절히 사용한다.