기계어 2

구문 VS 명령어 (Statement VS Instruction) 소스코드 어셈블리어 인간이 하이 레벨 언어를 쓰는 이유

소스코드의 한 문장을 statement(구문)이라고 하고, 실제로 컴퓨터가 명령을 수행하는 하나의 단위를 instruction(명령어)라고 한다. 프로그램은 명령어의 유한집합을 의미하며, 여기서 명령어는 instruction에 해당한다. CPU는 한번에 하나의 instruction을 수행한다. (구체적으로 CPU의 ALU, Arithmethic Logic Unit) c = a+b; 이렇게 C언어 소스코드의 한 문장(statement)을 쓰게되면, 컴퓨터 내부에서는 레지스터에 값을 가져오고 계산해서 C의 위치에 더한 값을 집어넣는 세부적인 일(instruction)들이 필요하다. 컴파일러가 이 하나의 statement를 수행하기 위해서 세개의 instruction을 실행해야한다. mov eax, dword..

공부/JUN STUDY 2021.09.14

컴파일 VS 인터프리터 (Compile VS Interpreter)

프로그램을 해독하는 방식 (소스코드를 기계어로 변환하는 방식)에는 컴파일과 인터프리터 방식 두가지가 있다. 대부분의 프로그래밍 언어가 컴파일 방식을 택하기 때문에 프로그램의 해독(소스코드 => 기계어)을 컴파일이라고 이야기하는 것이다. 컴파일은 소스코드 => 기계어로의 해독 과정을 뜻하는 단어가 아니다!!! (기계어로의 변환 방식 중 하나가 컴파일) 오브젝트를 생성하고 저장하는 방식 ⇒ 컴파일 (번역본 제작 - 한번 해독 해두고 계속 실행) 그때그때 실행코드를 생성하는 방식 ⇒ 인터프리터 (옆에서 통역 - 실행시 마다 해독) 우리가 한글(=기계어) 밖에 모르는 사람을 위해 영어(=하이레벨언어) 책을 읽어줘야하는 상황에 놓여있을때 (기계어 밖에 모르는 컴퓨터를 위해 하이레벨언어를 해독해줘야하는 상황에 놓여..

공부/JUN STUDY 2021.09.14
728x90