• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

기계어 질문있습니다.

21.06.29 20:40 작성 조회수 151

0

1. 기계어는 컴퓨터가 알아들을 수 있는 언어인거 같은데
이거는 컴퓨터가 처음에 만들어 졌을 때부터 기계어의 형태는
이렇게 된건가요?? 맞다면 사람들은 기계어가 이렇다는 것을 
어떻게 안건가요??

2. 그리고 옛날에는 기계어로 프로그래밍을 했을 거 같은데
기계어로 만든 프로그램을 컴퓨터가 실행하게 하기 위해서는
또 다른 프로그램이 필요했나요??
아니면 기계어를 작성하기만 한다면 컴퓨터가 그대로 작동하는 건가요??

3. 만약 기계어로 만든 것을 실행 시킬 때 어떤 프로그램이 필요했다면 그 프로그램은 어떻게 만들어진건가요??

답변 1

답변을 작성해보세요.

2

안녕하세요. 많은 고민을 하신것 같은 질문이네요.

하나씩 답변 드리도록 하겠습니다. 사실 이걸 제가 만든게 아니라서 틀린 정보가 있을수도 있는 점 양해 부탁드리고요. 제가 지금까지 공부해보다가 이해한 내용이라고 생각하시면 될것 같습니다. 

1. 기계어는 컴퓨터가 알아들을 수 있는 언어인거 같은데
이거는 컴퓨터가 처음에 만들어 졌을 때부터 기계어의 형태는
이렇게 된건가요?? 맞다면 사람들은 기계어가 이렇다는 것을 
어떻게 안건가요??

답변:

컴퓨터를 이렇게 만들겠다는 구조를 정하고 나면 어떤 정보를 어떻게 처리할지에 대한 계획 같은 것이 생깁니다. 

이데이터를 어떻게 쓰겠다는 계획 - 이걸 프로토콜이라고 합니다. 한국어로는 규약이라고 하죠

현재는 어떤 기술이 생길때 보통 ISO - 14434 이런식의 계획을 표준 위원회 같은 곳에서 회의를 거쳐서 만들어내는데요. 어느 정도 사전 연구 같은 것을 통해서 규약에 대한 스펙(정의)를 계속 발전시켜서 정의하죠. 그걸 가지고 이제 만드는 업체들에서 그 규약에 따라서 제품을 만들고 있습니다. 

하지만 그때는 그런게 아니라 천재적인 개인 한명이 구조를 만들고요. 그걸 가지고 자기 혼자서 테스트 해보고 만든거죠. 폰노이만의 컴퓨터 구조 자체를 그사람이 처음부터 생각해낸 것이라고 알려져 있는데 사실 그전에도 많은 사람들의 논의가 있었겠죠. 폰노이만이 했든 아니든 그건 중요한게 아니고요. 구조(컴퓨터의 구조)를 먼저 잡고 그 구조에 따라서 동작을 시키기 위해서 프로토콜을 만들었을 것입니다. 그리고 직접 그것대로 실제 구현도 해보고 나서 발표를 한 거겠죠. 



2. 그리고 옛날에는 기계어로 프로그래밍을 했을 거 같은데
기계어로 만든 프로그램을 컴퓨터가 실행하게 하기 위해서는
또 다른 프로그램이 필요했나요??
아니면 기계어를 작성하기만 한다면 컴퓨터가 그대로 작동하는 건가요??

답변:

옛날에는 구멍을 뚫은 종이(천공카드) 같은 걸로 코드를 입력했던 적도 있다고 들었습니다. 예를 들면 0x02 다음의 두바이트가 있는데 이것이 전송이라 라고 규약을 만들었다면 바코드에 아래와 같은 정보로 표현을 할수 있겠죠.

0000 0010

xxxx xxxx

xxxx xxxx 

(x는 위에서 말한 0 아니면 1의 값입니다) 

위의 바코드를 읽어들이는 기계를 만들어서 컴퓨터에 집어넣을 수 있을 것입니다. 

그래서 그 전에는 어떻게 했을까 싶은지 하면요. 전자회로를 통해서 그것을 직접 구현 할 수 있을 것 같습니다. 

flip flop 이란게 사실 납땜해서 구현할 수 있습니다. 그렇다면 코드라는 것도 그런식으로 구현할 수 있을 것입니다. 저도 거기까지는 못해봐서 모르겠지만 이걸 발전시켜서 오늘 날의 컴퓨터가 만들어진 것이죠. 



3. 만약 기계어로 만든 것을 실행 시킬 때 어떤 프로그램이 필요했다면 그 프로그램은 어떻게 만들어진건가요??

답변:

전자회로로 작업을 하다가 바코드로 코드를 입력받다가 그런식으로 계속 발전시키면 컴파일러를 만들 수 있습니다. 컴파일러라는 것도 사실 어떻게 보면 코드를 가지고 프로그램입니다.그런데 이건 코드를 가지고 실행파일로 만들어주는 프로그램입니다. 그런식으로 그 다음으로는 컴파일러를 가지고 여러 프로그램을 만들어서 운영체제를 만들 수 있습니다. 

도구를 만들고 그 도구를 가지고 다시 다른 도구를 만드는 것과 비슷한 형태로 만들수 있는 것이죠.

이게 사실 생물학이라면 달걀이 먼저인지 닭이 먼저인지 알수 없습니다. 하지만 응용공학(?) 응용기술(?)의 경우에는 천재적인 사람 한 명이 완전하게 돌아가는 형태를 전부 구현해서 (그게 지금 본다면 아주 간단할지라도요) 그걸 가지고 계속 발전이 된다고 생각할 수 있습니다. 1번에서 설명드렸죠. 그래서 폰노이만이라는 분이 그렇게 추앙받는 것이라고 생각하고요. 인터넷에 찾아보면 이 분의 천재성에 대해서 말도 안되는 일화들이 많이 있습니다. 

읽어보시면 재미있을 겁니다. ^^

그냥 아는대로 적은 답변입니다만 그래도 답변이 되셨기를 바랍니다. 좋은 하루 되세요.