본문 바로가기
공부정리 및 기록/[C언어] 프로그래밍

[C언어] 프로그램과 프로그래밍 언어 이해하기 / 프로그래밍의 기초

by 9월스튜디오 2020. 7. 22.

 

 

 

 

 


 1.  프로그래밍의 기본단계와 프로그래밍 언어


 

프로그램(Program) 이란, 컴퓨터가 어떠한 작업을 처리할 수 있도록 컴퓨터 언어로 기술된 일련의 명령어 모음을 뜻한다. 컴퓨터는 입력되는 데이터를 자동으로 처리하는 기계이며, 컴퓨터는 데이터의 입력부터 처리 과정과 결과의 출력을 수행하기까지 프로그램에 정의된 명령의 순서와 벙법에 따라 자동으로 처리한다. 컴퓨터를 이용하여 어떠한 문제를 해결하기 위해서는 프로그래밍이 필수적이다. 이렇게 컴퓨터에 알맞은 수식이나 작업을 정리하여 순서를 정하고 명령어를 구성하여 프로그램을 작성하는 작업을 총칭해서 프로그래밍(Programing)이라 하며, 알고리즘을 형성하여 작업의 순서에 따라 명령 코드를 작성하는 작업을 코딩(Coding)이라 한다.

 

 

프로그래밍 언어는 일종의 컴퓨터와 인간의 의사소통이 가능케하는 하나의 수단이다. 컴퓨터는 본래 0,1로 구성된 기계어만을 이해할 수 있다. 프로그램을 작성하기 위해서는 컴퓨터가 알아들을 수 있는 프로그래밍 언어를 따로 사용해야한다. 컴퓨터가 등장한 초기에는 숫자만을 나열한 명령코드인 기계어를 사용했었다. 하지만 기계어는 오류가 잦고, 수정이 어려워서 작업이 까다롭다는 큰 단점이 있었다. 그래서 인간은 작성하기 쉬운 기호나 간단한 언어와 수식을 사용하여 프로그램을 작성하기 위한 고안을 시작하였다.

 

1954년, IBM 연구진은 프로그래머가 수학 기호로 명령 문장을 작성하면 컴퓨터는 이를 기계어로 바꾸어 인식할 수 있는 고급 자동 프로그래밍 언어에 대한 연구를 추진하였다. 1957년, 최초의 고급언어로 수치 해석이 뛰어난 포트란(FORTRAN)을 발표하였다. 포트란을 개발함으로써, 프로그래밍시 발생하는 오류를 훨씬 절감시켰으며, 포트란은 기계어보다 쉽다. 이는 더 고급적인 언어가 개발될 수 있는 데에 기반이 되었다.

 

저급언어로는 대표적으로 어셈블리어가 있는데 프로그래밍의 연구 초기에 사용되던 언어로, 비교적 단순한 형식이기 때문에 컴퓨터의 이해 속도가 빠른 편이다. 인간 사고의 수준에 더 가깝고, 작성하기 더 쉬운 고급 언어로는 포트란, C언어, C++, C#, Java 등이 대표적이다.

 

프로그래밍 언어의 발전단계는 다음과 같다.

* 1세대 - 0과 1로만 구성된 기계어로, 컴퓨터가 사용하는 언어, 어셈블리어 등.

* 2세대 - 기계어를 일부 기호화했지만 기계어에 가까운 언어, IPL 등.

* 3세대 - 프로그래밍 언어의 기초가 된 C언어, 포트란, 코볼, 베이식 등 개발.

* 4세대 - 대용량 데이터를 처리하기 위한 데이터 베이스 관련 프로그램 언어, 윈도우기반, 현재 많이 줄어듬, 파스칼(Pascal) 등.

* 5세대 - 본격 객체지향 언어, 네트워크 기능 관련 강화, 웹과 데이터베이스 연결, Java, C++, C#, HTML, JSP, PHP, ASP 등

 

컴퓨터는 인간이 작성한 고급언어를 이해할 수 없다. 즉, 고급언어로 작성된 프로그램을 기계어만이 이해할줄 아는 컴퓨터를 위해 번역해줄 프로그램이 필요하다는 것이다. 대부분 컴파일러(Compiler)라는 일종의 번역기 프로그램을 이용하는데, 이는 고급언어로 쓰인 프로그램을 컴퓨터가 이해하고 실행할 수 있게끔 기계어로 번역한다. 비슷한 프로그램으로 인터프리터(Interpreter)가 있는데, 이 또한 고급언어로 작성된 프로그램을 컴퓨터가 이해하도록 해석하며, 소스 프로그램을 한번에 기계오로 변환시키는 컴파일러와는 달리 코드를 한 단계씩 기계어로 해석하여 실행한다.

 

디버그(Debug, 혹은 디버깅 Debugging)는 프로그램 개발 시 발생하는 시스템의 논리 혹은 연산의 오류를 찾아내서 흐름을 추적하여 원인을 알아내고 수정하는 작업이다. 버그(bug)는 벌레라는 의미로, 디버그(debug)는 해충을 잡는다는 의미이지만, 프로그래밍에서는 프로그램의 오류를 해충에 비유하여 찾아내 수정한다는 의미로 쓰인다. 컴퓨터 프로그래밍 단계에서 빠져서는 안될 작업이다.

 

 

프로그래밍의 단계는 대략 다음과 같다.

* 계획 단계 - 특정 문제 해결을 위한 프로그램의 요구 인지 및 분석 - 기획 및 개발 도구(개발 프로세스) 선택 - 프로그램 작성 - 테스트 및 디버깅 - 품질관리 및 유지보수

 

참고로 컴퓨터를 작동하거나 이용하는데에 쓰이는 프로그램과, 관련 기술의 총칭을 소프트웨어라 하며, 하드웨어에 대응하는 개념이라 보면 된다. 위의 프로그래밍 단계는 즉 소프트웨어 개발 단계로 보면 되고, 꼭 일련의 단계에 국한될 필요 없이 자유롭게 작성 가능하다.

 

 

 



감사합니다.

다음 포스팅에서 계속됩니다.

(참고문헌 : 위키피디아)

 

 

댓글