기계는 이진수 형식의 기계어로 명령을 받고 그를 수행한다.
"00101110"에서 앞 4바이트는 Opcode(Operation Code, 명령 코드)로 명령을 내리고
뒤의 4바이트 1110은 2진수로 14번째 메모리의 값을 의미한다.
1940년, 1950년에는 이런 이진수를 이용한 언어가 아닌 더 높은 차원의 언어를 고안했다.
기계 친화적인 언어가 아닌 인간이 읽을 수 있는 언어를 생각했다.(more Human Readable)
위에서 설명하던 Opcode는 mnemonics(니모닉)이라는 간단한 이름이 지정되었다.
0010 --- > "LOAD_A 14"
하지만 CPU는 이진수만 이해할 수 있기에 문자 기반의 명령어를 읽고 자동으로
이진 명령과 일치하는 것을 조합시키는 프로그램이 필요했고
'어셈블러'가 개발되었다.
어셈블러 언어로 된 프로그램을 읽고 기계어(이진수 형식으)로 전환시키는 역할을 하였지만
1:1 매핑방식으로 한계가 있었고 여러 제약이 있었다. ( 그 당시에는 획기적이었겠지만 ... )
이에 하버드 마크1의 첫 번째 프로그래머였던 Grace Hopper는 높은 수준의 프로그래밍 언어를 고안했고 산술 언어 버전 0(Arithmetic Language Version 0) A.K.A 'A-0'을 개발했다.
1:1 매핑 방식의 어셈블러와는 달리 한 줄의 명령어로 수십가지 명령이 CPU에 의해 수행될 수 있었다.
이 한 줄의 명령어를 기계어로 번역하기 위해 Hopper는 1952년 최초의 'Compiler'를 만들었다.
전문화된 프로그램, 프로그래밍 언어로 작성된 Source Code는 이 Compiler를 통해 낮은 수준의 언어,
즉 기계 친화적인 언어인 Computer Machine Code로 번역되었다.
어셈블리 언어와 다르게 저장할 메모리가 지정되지 않고
처리할 레지스터가 지정되지 않은 파이썬의 모습
컴파일러가 이 소스코드를 다루면서 낮은 수준의 불필요한 복잡성을 추상화 한다.
1957년, IBM은 'FORTRAN'이라는 언어를 개발했고, 이는 초기의 프로그래밍을 지배했다.
하지만 이 언어는 IBM 컴퓨터에서만 컴파일되고 실행 될 수 있었다.
1950년대 대부분의 언어와 컴파일러는 단일 유형의 컴퓨터에서만 실행이 가능한 한계가 있었고,
이를 해결하기위해 Hopper는 데이터 시스템 언어위원회를 창설하여
"각기 다른 컴퓨터에서도 사용할 수 있는 공통 프로그래밍 언어 개발"을 위한 안내를 했고
이를 바탕으로 'COBOL' (Common Business Oriented Language)이 개발되었다.
각 컴퓨터에 자체 COBOL 컴파일러를 내장시키면, 어떤 컴퓨터에서 실행되든 동일한
COBOL 언어의 코드를 수행할 수 있었다. 이는 전문 프로그래머만의 영역이던 프로그래밍이
대중에게 상대적으로 높은 접근성을 얻게되는 계기가 되었으며
이를 바탕으로 프로그래밍 언어의 황금시대가 시작되었다.
연도 별 개발된 언어