본문 바로가기
Computer Science

컴퓨터'언어' 역사

by 일상코더 2022. 7. 12.

컴퓨터 "언어"는 2진수(0, 1)로 되어있다.

 

명령어(2진수로 되어있는 데이터)를 컴퓨터가 받아들여 실행한다.

 

2진수를 사용하는 이유

                          - 컴퓨터라는 장치 자체는 전기적 신호로 되어있다.

                          - 전류의 차단, 흐름이란 두가지 상태케이스의 개념을 0, 1에 부여했다.

                          - 컴퓨터에게 있어서 0, 1은 전기적 신호이다. 

                          - 특정 신호가 들어오면 특정 동작을 실행 하는 회로로 구성 되어있다.

 

언어 

 

 초창기에는 우리가 컴퓨터의 명령을 직접 알고있어야 했다. 특정 명령어를 넣어주면 CPU가 특정 동작을 취한다는 방식이다. 하지만 CPU의 제조사마다, 버전마다 명령어가 달랐다. 각자 다른 명령어를 전부 암기할 수 없으므로 명령어가 통일되며 만들어진게 "운영체제(OS)"이다. 우리는 OS가 요구한 명령어를 넣어주면 각 제조사와 PC의 "명령어"로 변환된다. 그렇기 때문에 우리는 운영체제(OS)를 공부하면 어떤 컴퓨터에든 명령을 내릴 수 있다.

 

운영체제 

 

 현재 PC쪽에 운영체제는 윈도우가 90%이상 점유하고 있다. 그렇기 때문에 윈도우에서 구동이 가능한 프로그램을 만들면 대부분의 PC에서 내가 만든 프로그램을 실행할 수 있다. 만약 윈도우가 없었다면 우리는 사용자가 사용하는 버전마다 그에 맞는 프로그래밍을 해야했다.  ex) 안드로이드, ios

 

컴퓨터는 최종적으로 기계어로 명령해야 이해하고 작동한다. 하지만 프로그래머가 기계어를 암기하기엔 암기해야할 것들이 너무 많았다. 그래서 사람이 생각하기 쉬운, 직관적인 문법을 만들었다. 사람이 이해하기 쉬운 문장으로 작성하면 중간에 컴파일러가 기계어로 번역한다. ex) C, C++, C#, JAVA, 파이썬 등등

 

C++ 특징

 

1. C++ 과 다른언어의 차이 (가상머신이 있고, 없고 차이다)

 C#과 JAVA같은 경우 가상머신(닷넷프레임워크, CLR)이란 중간공정과정을 거친다. 가상머신을 사용하는 이유는 가상머신이 우리의 메모리관리를 해준다. 그러므로 C#, JAVA등의 언어는 우리의 실수를 가상머신이 미리 방지해주기 때문에 난이도가 쉽다.

 

2. C++은 기계어와 가장 가깝다.

 

3. C++은 내가 직접 메모리관리를 해야한다.

 

4. 직접 메모리관리를 해주기 때문에 어렵지만 프로그램의 최고의 효율을 내기 위해서는 내가 모든것을 컨트롤 하여 최적의 환경을 만들어주어야 한다.

 

 

'Computer Science' 카테고리의 다른 글

바인딩(binding)  (0) 2023.02.28
PATH 환경 변수(environment variable)  (0) 2023.02.22
스크럼(애자일 개발 프로세스)  (0) 2023.02.16
CPU, 메모리, 레지스터  (0) 2022.10.31
트리(tree)와 이진트리(binary tree)  (0) 2022.07.11

댓글