SPARKS
최종 수정 : 26.12.26
SPARKS
SPARKS(Structured Programming : A Reasonable Komplete Set)는 알고리즘을 기술하는 언어로 선언문, 지정문, 조건문, 입출력문으로 구성된다.
1. 선언문
프로그램이 수행되는 동안에 사용될 데이터의 특성을 언어 번역기에 알려주기 위해 사용되는 문장이다. 즉, 변수 선언에 쓰이는 문장으로 자료형을 선언한다.
선언내용 : 데이터의 타입, 이름, 크기, 소멸 및 생성 시기
2. 지정문
상수, 변수 또는 연산의 결과값을 변수에 할당하는 문장으로 대입연산자 오른쪽에 있는 값이나 식의 결곽밧을 대입연산자 왼쪽에 있는 변수에 저장(할당)한다.
3. 조건문
정의조건의 결과에 따라 참(true)이나 거짓(false)으로 명령문의 수행 여부를 결정한다.
1) if문
☞ 조건에 따라 참이나 거짓을 판별하고 조건이 참일 때와 거짓일 때의 실행하는 문장을 각각 기술한다.
2) case문
☞ 다중 택일의 선택문으로 여러 개의 조건 중 조건에 맞는 수행문장을 실행하는 구조로, if문을 여러 개를 사용하는 것과 동일하다. 만족하느 조건이 없는 경우에는 else의 수행문장을 실행한다.
4. 반복문
반복문은 명령문의 집합을 반복하여 수행하기 위해 수행하는 문장으로, 반복 조건에 따라 반복문 내의 문장을 수행한다.
1) while문
☞ 조건이 참일 동안 해당 수행문장을 반복하는 문장이다.
2) for문
☞ while문과 일대일 변환이 가능한 구문이다.
3) repeat문
☞ 수행문장을 먼저 실행하고 조건을 판별한다. 조건이 참이 될 때까지 수행문장을 반복한다. while문과 달리 수행문장을 먼저 실행한 후 조건을 검사하므로 최소한 1번 이상 수행하고, 조건이 참이 될 때까지 반복되므로 조건이 거짓일 동안 실행한다.
5. Procedure문
프로그램을 기능이나 특정 기준에 따라 나누어진 단위로 프로시저나 모듈(module), 서브루틴(sub-routine), 함수(function), 메서드(method)라고 부른다. 프로시저 간의 데이터 전달은 매개변수(parameter)를 통해서 이루어진다. 함수(function)와 프로시저(procedure)의 차이는 결과값의 반환(return) 여부에 따라 결정된다. 함수는 return이 있고, 프로시저는 return이 없다.
6. 프로시저 간의 자료 전달방법
메인 프로시저는 서브 프로시저를 호출을 통해 제어를 이동한다. 이떄, 메인 프로시저의 실 매개변수(실인수)를 서브 프로시저의 형식 매개변수(가인수)로 자료를 전달한다.
call by value
☞ 메인 프로시저와 서브 프로시저 사이의 매개변수가 값으로 전달하는 방식으로, 실매개변수와 형식매개변수는 서로 영향을 미치지 않는 별개의 변수이다.
call by reference(call by address, call by location)
☞ 메인 프로시저와 서브 프로시저 사이의 매개변수가 포인터(주소)로 이동하는 방식으로, 형식매개변수의 변경이 실매개변수의 변경으로 이어진다.
call by name
☞ 부 프로그램을 호출하는 매개변수의 값을 구하지 않고 부 프로그램에서 매개변수가 필요할 때 부프로그램에서 결정하는 방식이다.
프로시저를 통한 프로그램의 분할은 추상화 적용이 가능해지고, 여러 개발자의 공동 개발이 쉽고, 재사용성 향상 및 프로그램의 구조 파악이 쉽다는 장점이 있다.
7. 입출력문
read문은 외부에서 자료를 입력받기 위해 사용하며, print문은 처리된 정보응 외부로 저장하거나 출력하기 위해 사용한다.
8. 기타 명령과 규칙
1) 주석(comment)문
☞ 프로그램의 실행에 영향을 주지 않는 설명문으로 프로그램 소스의 기능, 사용방법, 변수의 의미 등을 기술할 때 사용한다.
2) stop문
☞ 수행 중인 프로그램을 중단하기 위해 사용하는 구문이다.
3) SPARKS 언어의 사용 규칙
모든 프로시저의 입출력 변수를 명확히 명세한다.
- 변수의 의미를 알 수 있게 정의한다.
- 알고리즘의 제어 흐름은 되도록 순차적으로 표현한다.
- 가독성을 위해 각 문장은 들여쓰기(indentation)를 사용한다.
- 주석은 짧으면서 의미는 명확히 기술한다.
- 함수를 적절히 사용한다.
참고
독학사 교재