cs공부

김윤철·2022년 8월 1일
0

알고리즘

알고리즘은 추상적이고 이상적인 절차를 기술한 것으로, 구현에 필요한 세부 사항과 현실적인 고려 사항을 무시한다. 알고리즘은 정확하고 명료한 레시피이다. 의미가 완전히 알려져 있고 구체적으로 명시된 기본 연산으로 표현된다. 이러한 기본 연산을 사용하여 각 단계를 상세히 설명하고 모든 가능한 상황을 다룬다. 그리고 알고리즘은 결국 멈춰야한다.

프로그램

컴퓨터로 하여금 어떠한 기능을 할 수 있도록 지시하는 명령어들의 집합 또는 일련의 프로그램. 컴퓨터 프로그램의 처리 과정은 프로그램을 실행시키거나 프로그램이 실행될 수 있도록 준비하기 위하여 어셈블러, 컴파일러, 해석기, 또는 번역기(translator)의 사용을 포함한다. 컴퓨터 프로그램은 사상(idea)이 동일해도 표현(expression)이 다르고, 독창성이 있으면 별개의 지식 정보로 분류되어 저작권이 보호되나 아이디어의 저작권은 인정되지 않는 특징이 있다.
프로그램은 추상적인 것과는 거리가 멀다. 프로그램은 알고리즘과 달리 실질적인 문제도 신경 써야한다. 불충분한 메모리, 제한된 프로세서 속도, 유효하지 않거나 악의적으로 잘못된 입력 데이터, 하드웨어 결함, 네트워크 연결 등등.

따라서 알고리즘이 이상적인 요리 레시피라고 하면, 프로그램은 적군의 공격을 받는 동안 군인들이 먹을 식사를 로봇에게 준비하도록 하는 상세한 명령어 모음이라고 할 수 있다.


1950년대 초, 프로그래밍할 때 수반되는 단순한 반복 작업을 처리하기 위한 프로그램이 몇 가지 만들어졌는데, 이 덕분에 프로그래머들은 명령어에 의미 있는 단어를 붙이고 특정 메모리 위치를 나타내는 이름을 사용할 수 있었다.

이처럼 특정한 처리를 수행하는 프로그램을 어셈블러라고 한다.

어셈블러

하드웨어가 직접 이해하여 실행하는 기계어는 일반적으로 비트 열 또는 16진수로 표현되기 때문에 인간이 이해하기 어렵다. 그래서 인간이 이해하기 쉽도록 기계어와 거의 일대일로 대응하는 기호로 표현된 언어로 어셈블러 언어가 있으며, 어셈블러 언어를 기계어로 번역하는 프로그램을 어셈블러, 번역하는 것을 어셈블이라고 한다.

profile
코린이(코인아님)

0개의 댓글