1장 사람을 사랑한 기술

Seunghee Ryu·2023년 11월 14일
0

  • 컴퓨터가 쓰는 기계어에 가까울수록 저급 언어, 사람이 쓰는 언어에 가까울수록 고급 언어로 분류한다
  • 기계어에서 자바가 탄생하기까지의 과정을 설명하였다

기계어 - 0과 1의 행진 / 너무나 비인간적인 언어

컴퓨터가 이해할 수 있는 것은 0과 1밖에 없다. 2진법으로 된 기계어를 사용하는 컴퓨터는 매우 빠르고 정확하지만 기계어 코드가 CPU에 따라 다르며 인간이 사용하기에는 너무나도 낮은 수준의 언어이다.

어셈블리어 - 0과 1의 행진을 벗어나 인간 지향으로 / 기계어 니모닉

기계어를 벗어나 인간의 언어를 모방해 프로그램을 작성할 수 있도록 만든 것이 어셈블리어이다. 0과 1이 아니라 일상 언어로 프로그램을 작성하게 되었지만 CPU마다 기계어가 다르기 때문에 CPU별로 어셈블리어가 달랐고 그 때문에 기계마다 소스를 만들어야 했다.

C언어 - 강력한 이식성 / One Source Multi Object Use Anywhere

어셈블리어라면 같은 일을 하는 프로그램의 소스 파일을 각 기계의 종류만큼 만들어야 했으나(멀티 파일) C언어의 등장으로 소스 파일을 하나만(싱글 소스) 만들면 됐다. 하나의 소스 파일을 각 기게에 맞는 컴파일러로 컴파일만 하면 된다. 하지만 C언어는 메모리를 개발자가 제어해야 했고 이것이 어렵고 까다로웠다.

C++언어 - 정말 인간적인 프로그래밍 방법론, 객체 지향

C++은 C에 객체 지향 개념을 도입했지만 진정한 객체 지향 언어는 아니었다.

자바 - 진정한 객체 지향 언어

자바는 Write Once Use Anywhere을 모토로 C와 다르게 컴파일러를 기종별로 따로 구비해두지 않아도 된다. 자바로 구현한 소스는 다른 기종의 컴퓨터에서 실행하기 위해 목적 파일인 오브젝트 파일만 가져가면 된다. 사실 초기에는 더 많은 물리적 CPU 자원과 더 많은 물리적 메모리를 소비했기 때문에 속도가 많이 느렸으나 하드웨어의 발전과 최적화된 알고리즘으로 개발된 API와 JVM으로 인해 속도가 빨라져서 살아남았다.

0개의 댓글