2022

프로그래밍 언어 본문

CS

프로그래밍 언어

__g__ 2022. 6. 2. 10:55

알고리즘

알고리즘이라는 용어는 문제를 해결하기 위한 절차나 방법을 의미하는 단어로 넓은 범위에서 사용된다. 구체적으로 설명하면, 알고리즘은 '문제나 과제를 해결하기 위한 처리 절차를 하나하나 구체적인 순서에 따라 표현한 아이디어나 생각' 이라고 할 수 있다. 알고리즘이란 '생각' 또는 '아이디어'이기 때문에 형태가 없다. 따라서 어떤 것을 다른 사람에게 전달하려면 눈에 보이도록 표현해야 한다. 레시피, 악보, 사용 설명서는 알고리즘을 다른 사람에게 전달하기 위해 사람이 이해하기 쉬운 문장, 사진, 도형, 일러스트 등을 이용해 표현한 것이다.

 

프로그래밍

사람에게 전달하듯 컴퓨터에게도 어떤 명령을 내려야 하는데, 이때 문장, 일러스트, 그림, 사진 등은 컴퓨터가 이해할 수 없기 때문에 컴퓨터가 이해할 수 있는 언어로 명령을 내리게된다. 이때 내리는 명령어가 '프로그래밍 언어'이다. 프로그래밍(programming)이란  특정 목적을 달성하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 구체적인 프로그램으로 작성하는 과정을 가리킨다. 간단히 프로그래밍이란 프로그램을 만드는 모든 작업이라고 볼 수 있다.

 

간단 요약 

  • 알고리즘을 프로그래밍 언어로 기술한 것을 '프로그램', 프로그램을 작성하는 작업을 '프로그래밍'이라 한다.
  • 프로그래밍 언어는 컴퓨터에 지시하기 위한 인공 언어이다.

 

프로그래밍 언어의 종류

저급 언어 (low level language) 고급 언어 (high level language)
기계 중심의 언어
실행 속도가 빠름
상이한 기계마다 다른 코드를 가짐
사람 중심의 언어
실행을 위해서는 번역하는 과정이 필요함
상이한 기계에서 소스 수정 없이 실행 가능
기계어, 어셈블리어 C, C++, JAVA, Python, COBOL 등

 

어셈블리어(assembly language)

어셈블리어(=어셈블러 언어)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다.

쉽게 말하자면 컴퓨터는 바로 읽을 수 있지만 사용자가 이해하기 어려운 기계어 대신에 명령 기능을 쉽게 연상할 수 있는 기호를 코드화한 기호 언어이다.

 

특징

  • 어셈블러(assembler)라는 통역기(=해석기)에 의해 기계어로 변환된다. 그러므로 기계와 바로 대화가 가능한 언어이다.
  • 컴퓨터 구조에 따라 사용하는 기계어가 달라지며, 따라서 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다.
  • 동일한 종류의 프로세서에서만 실행된다.
  • 모든 범용 컴퓨터는 기본적으로 동일한 기능을 수행하지만, 기능을 어떤 과정을 거쳐 수행할지는 다를 수 있으며, 이런 차이는 어셈블리어에 반영되게 된다.
  • 컴퓨터에서 실행하는 과정들을 이해하기 쉽다. 

장점

  • 프로세서를 직접 제어할 수 있다. (레지스터나 I/O에 바로 접근할 수 있다.)
  • 동작을 하나하나 정확하게 제어할 수 있어서 효율적이고 최적화된 코드를 작성할 수 있다.
  • 고수준의 언어들로는 구현할 수 없는 부분까지 구현할 수 있다.


단점 

  • 프로그램 자체를 작성하기에는 복잡하고 작성할 것이 많다.
  • 원하던 방향이나 계획을 바꿔야 하는 경우, 코드를 대부분 재작성해야 된다.
  • 다른 아키텍쳐나 프로세서로의 이식성이 부족하다. (환경이 바뀌면 다시 최적화 시켜야 한다.)



더보기

 

'CS' 카테고리의 다른 글

URL  (0) 2022.06.23
파일을 압축할 때  (0) 2022.06.16
파일 시스템과 블록  (0) 2022.06.09
15. 캐시가 뭔가요?  (0) 2022.05.26
79.곳곳에 도사리는 위험 (보안 위협)  (0) 2022.05.20
Comments