본문 바로가기
프로그래밍

프로그래밍 언어란 무엇일까? ( + 컴파일,빌드,링크,디버그의 개념)

by HP_Factory 2021. 1. 12.

프로그래밍 언어란?

프로그래밍 언어는 컴퓨터가 실행할 프로그램을 작성하기 위한 언어입니다.

컴퓨터의 CPU는 이진수(Binary Code)인 0과 1밖에 이해하지 못하며 이진수 명령어들로 구성된 언어를 기계어(Machine Language)라고 합니다.

 

사람이 직접 이진수의 기계어로 프로그램을 작성하는 것은 매우 어렵기 때문에, 기계어의 각 명령을 ADD, SUB, MOVE 등 가급적 표현하기 쉬운 상징적인 니모닉 기호(Mnemonic Symbol)로 일대일 대응시킨 어셈블리어(Assembly Language)가 만들어 졌습니다!

 

그러나 어셈블리어 역시 사람이 다루기 힘든 저급 언어로서, 다양한 프로그램 구조나 자료 구조를 표현하기에는 너무 복잡하였습니다. 

 

이에 사람이 효율적으로 표현할 수 있는 Pascal, Basic, C/C++, C#, JAVA(자바) 등의 고급 언어가 생겨나게 되었고, 고급언어는 크게 절차 지향 언어와 객체 지향 언어로 나눌 수 있습니다.

 

*대표적으로 C는 절차 지향 언어이고, JAVA(자바)는 객체 지향 언어 입니다!

 

 

프로그래밍과 컴파일?

 

 

컴파일과 컴파일러

요약

  • 작성한 일정한 형식의 컴퓨터 명령을 소스 코드(Source Code)라고 합니다.
  • 소스 코드가 저장된 텍스트 파일을 소스 코드 파일(Source Code File) 또는 간단히 소스 파일(Source File)이라고 합니다. (소스 파일을 원시 파일이라고 부르기도 합니다.)
  • 이를 번역하는 행위를 컴파일(Compile)이라고 하고, 여기에 사용되는 프로그램(소프트웨어)을 컴파일러(Compiler)라고 합니다.

 

 

 

컴파일 & 링크 & 빌드 & 디버그

컴퓨터가 발전하고 작성하는 소스 코드의 양이 늘어남에 따라, 한 파일에 모든 소스 코드를 작성하는 방식이 불편해지게 되고 사람들은 소스 코드를 다른 파일에 분리하는 방법을 생각해 내기 시작했습니다.

 

원래 하나였던 파일을 분리했으므로, 프로그램을 완성하려면 분리했던 파일은 모두 연결해야 하고, 이렇듯 분리된 파일을 모아 하나의 실행 가능한 파일을 만들면 이를 두고 파일들을 링크(link)했다고 합니다.

이때 사용되는 프로그램(소프트웨어)를 링커(linker)라고 합니다!

 

컴파일과 링크 과정을 합쳐 빌드(build)라고 하고, 이때 사용되는 프로그램(소프트웨어)을 빌더(builder)라고 합니다.

 

디버그(Debug)는 프로그래밍 과정중에 발생하는 오류나 비정상적인 연산, 즉 버그를 찾고 수정하는 것입니다. 이 과정을 디버깅(Debugging)이라 하기도 합니다. 이때 사용되는 프로그램(소프트웨어)을 디버거(Debugger)라고 합니다.

 

 

 

요약

  1. 소스 코드를 작성하고 파일로 저장합니다.(소스 파일 or 원시 파일 생성)
  2. 저장한 소스 파일을 컴파일러를 이용하여 컴파일 합니다. (목적 파일 or Object File 생성)
  3. 컴파일러가 생성한 목적 파일들을 링커를 이용하여 링크합니다. 이때 실행 가능한 목적 파일이 생성됩니다! (실행 파일 생성)
    * 이때 컴파일러가 생성하는 파일과 링커가 생성하는 파일의 차이는 생성한 목적 파일이 실행 가능 하느냐에 있습    니다.
  4. 컴파일과 링크 과정을 합쳐 빌드(Build)라고 합니다. 이때 사용되는 프로그램(소프트웨어)을 빌더(Builder)라고 합니다.

빌드 과정

 

댓글