기계어 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
8번째 줄: 8번째 줄:
 
== 역사 ==
 
== 역사 ==
 
컴퓨터는 아주 단순한 지시사항을 매우 빠르게 수행하는 기계이고 [[인스트럭션]]은 0과 1로 이루어져 있다. 이런 형태의 인스트럭션을 기계어라한다. 1940 ~ 1950년대의 컴퓨터는 사실상 [[프로그래밍]]을 한다는 것이 불가능에 가까웠다. 그것들은 '배선(wiring)'을 통해 조절되었기 때문에 기판상에 있는 작은 전설들을 조작해서 연결이 이루어진 곳을 1, 연결이 없는 곳은 0을 나타나게 해놓았다. 전선 연결의 조합이 당시의 프로그래밍이었는데, 이런 형태의 배선은 만드는데 아주 시간이 오래 걸리고, 하기도 힘들 뿐 아니라, 뭔가 문제가 생겼을 때 에러를 찾아낸다는 것이 거의 불가능했다. 어떤 문제가 발생하면, 문자 그대로 전선 하나하나를 따라가며 어느 선에서 문제가 생겼는지를 찾아내야 했다. 문제는 전선이 수천, 수만개가 얽혀 있기 때문에 문제가를 해결하기란 거의 불가능에 가까웠고 또한, 새로운 프로그램을 추가하는 것도 일일이 새로운 배선을 해주어야 했기 때문에 많은 시간과 노동력을 요구했다.
 
컴퓨터는 아주 단순한 지시사항을 매우 빠르게 수행하는 기계이고 [[인스트럭션]]은 0과 1로 이루어져 있다. 이런 형태의 인스트럭션을 기계어라한다. 1940 ~ 1950년대의 컴퓨터는 사실상 [[프로그래밍]]을 한다는 것이 불가능에 가까웠다. 그것들은 '배선(wiring)'을 통해 조절되었기 때문에 기판상에 있는 작은 전설들을 조작해서 연결이 이루어진 곳을 1, 연결이 없는 곳은 0을 나타나게 해놓았다. 전선 연결의 조합이 당시의 프로그래밍이었는데, 이런 형태의 배선은 만드는데 아주 시간이 오래 걸리고, 하기도 힘들 뿐 아니라, 뭔가 문제가 생겼을 때 에러를 찾아낸다는 것이 거의 불가능했다. 어떤 문제가 발생하면, 문자 그대로 전선 하나하나를 따라가며 어느 선에서 문제가 생겼는지를 찾아내야 했다. 문제는 전선이 수천, 수만개가 얽혀 있기 때문에 문제가를 해결하기란 거의 불가능에 가까웠고 또한, 새로운 프로그램을 추가하는 것도 일일이 새로운 배선을 해주어야 했기 때문에 많은 시간과 노동력을 요구했다.
[[버그]](bug)라는 단어가 이때 유래 되었다는 말도 있다. 당시 거대한 컴퓨터 안에서 어슬렁 거리다가 사망한 진짜 벌레의 시체가 전선과 전선 사이에 또다른 연결을 만들어서 에러를 내었다는 것이다. 조금 시간이 지나 1950 ~ 1960년대의 기계어는 직접 배선을 해주어야 하는 수준은 벗어나게 되었다. 대신 '[[메모리]]'내의 값을 이용해서 프로그래밍을 하게 되었다. 새로운 방식의 기계어는 예전의 무식한 방식보다는 분명 향상된 것이었고, 바른 프로그램 수정을 가능하게 해주었지만 수많은 0과 1로 이루어진 패턴과 씨름하다 보니 에러가 나는 것은 마찬가지였다. 이후 사람들은 보다 쉽게 기억하기 위해 0과 1로 이루어진 비트 패턴 대신 어느 정도 이해가 되는 일종의 약어를 사용하기 시작했다. 약어는 [[비트]] 패턴의 기능 설명으로부터 만들어진 용어이다. 예를 들면  move, jump, branch 처럼 표현할수 있다. 이러한 명령어들은 [[어셈블러]](assembler)라 불리우는 프로그램에 의해 이진수 패턴 형태로 바뀌게 된다. 이렇게 축약어로 이루어진 언어를 [[어셈블리어]] 라고 하게 된다.<ref>이명헌, 〈[http://www.emh.co.kr/content.pl?history_of_programming_languages [언어] 프로그래밍 언어의 역사: 기계어, 어셈블리어, 절차적 언어, 객체 지향 언어]〉, 《이명헌 경영스쿨》</ref>
+
[[버그]](bug)라는 단어가 이때 유래 되었다는 말도 있다. 당시 거대한 컴퓨터 안에서 어슬렁 거리다가 사망한 진짜 벌레의 시체가 전선과 전선 사이에 또다른 연결을 만들어서 에러를 내었다는 것이다. 조금 시간이 지나 1950 ~ 1960년대의 기계어는 직접 배선을 해주어야 하는 수준은 벗어나게 되었다. 대신 '[[메모리]]'내의 값을 이용해서 프로그래밍을 하게 되었다. 새로운 방식의 기계어는 예전의 무식한 방식보다는 분명 향상된 것이었고, 바른 프로그램 수정을 가능 캐 해주었지만 수많은 0과 1로 이루어진 패턴과 씨름하다 보니 에러가 나는 것은 마찬가지였다. 이후 사람들은 보다 쉽게 기억하기 위해 0과 1로 이루어진 비트 패턴 대신 어느 정도 이해가 되는 일종의 약어를 사용하기 시작했다. 약어는 [[비트]] 패턴의 기능 설명으로부터 만들어진 용어이다. 예를 들면  move, jump, branch 처럼 표현할수 있다. 이러한 명령어들은 [[어셈블러]](assembler)라 불리우는 프로그램에 의해 이진수 패턴 형태로 바뀌게 된다. 이렇게 축약어로 이루어진 언어를 [[어셈블리어]] 라고 하게 된다.<ref>이명헌, 〈[http://www.emh.co.kr/content.pl?history_of_programming_languages [언어] 프로그래밍 언어의 역사: 기계어, 어셈블리어, 절차적 언어, 객체 지향 언어]〉, 《이명헌 경영스쿨》</ref>
  
 
== 특징 ==
 
== 특징 ==

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)