컴퓨터, IT 지식/IT

프로그래밍 언어 개발의 이유와 발전

게임이 더 좋아 2020. 4. 8. 14:40
반응형
728x170

https://www.youtube.com/watch?v=RU1u-js7db8&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=12

 

 

영상의 요약 및 정리

 

프로그래밍 언어

 

컴퓨터의 하드웨어는 공부했고 이제 소프트웨어에 대해 공부해보자

 

지난 시간,CPU 에서 처음 4bit의 명령은 연산코드, opcode라고 부른다.

알파벳과 컴퓨터의 비트는 다를게 없다 그냥 인코딩만 다를뿐. 그렇지만 컴퓨터는 하나의 언어밖에 모른다. Machine code, machine language라고 하는 1001010의 연속 밖에 못 알아듣는다. 그래서 우리는 우선 프로그램을 작성할 때

비공식적이지만 높은 level의 언어를 , 의사 코드(pseudo-code) 를 이용한다.

그것들은 기계어로 번역되어 컴퓨터에 입력되었는데 1940년 전까지만 해도 그렇게 컴퓨터와 대화를 했다. 그래서 사람들은 더 높은 수준의 언어를 개발했다.

opcode에는 mnemonics라는 이름이 지어졌고 operands 라는 개념도 나왔다

 

그래서 010101로 말을 하는 대신 다르게 말하기 시작했다. 2진으로 조합은 우리가 하기 싫으니까 우리는 우리말을 하고 우리말을 조합해줄 프로그램을 만들자! 그것이 어셈블러(assembler)가 되었다.

 

어셈블러의 장점중 하나는 메모리의 jump 주소를 자동으로 알아낸다는 것이었다. 메모리에서 코드가 추가되어 메모리의 jump주소가 달라지더라도 문제가 없었다. 이는 프로그래머의 생산성을 높였다.

 

그래도 여전히 어셈블리 언어는 기계어보다 조금 나은 수준이었다.

1:1 mapping을 통해 바꾸었다.

어셈블러는 여전히 프로그래머에게 어떤 레지스터와 메모리를 사용할지 생각하게 만들었다.

 

그래서 hopper라는 사람은 compiler를 만들었다.

 

프로그래밍 언어라는 소스코드들은 컴파일러를 거쳐서 기계어로 바뀌었다.

 

프로그래밍 언어가 생긴 이후로 우리는 추상화만 시키면 되었다. 레지스터나

메모리를 지정할 필요도 없었고 variable이라는 개념이 생겨났다.

우리가 variable에 접근할 때는 레지스터의 주소를 알 필요도 없다. 그냥 변수의 주소에 접근하면 된다. 또한 우리는 변수의 주소가 정확히 어디인지도 알 필요 없다. 컴파일러가 알아서 저장하고 불러줄 것이다.

 

FORTRAN이라는 언어를 1957년 IBM이 발표를 했다. Formula translation

포트란 프로젝트의 디렉터인 John Backus는이것은 자신이 프로그래밍을 어렵게 작업하기 싫어서 만들었다고 했다.

 

프로그래밍 언어는 컴퓨터에 따라 호환이 안되었는데 이 시대에는 컴퓨터를 업그레이드 했으면 언어도 업데이트 했어야 했다.

 

그래서 다른 컴퓨터에서도 사용할 수 있는 공통 프로그래밍 언어 개발을 하려고 했는데 그래서 Common Business-Oriented Language 즉 COBOL이 만들어졌다.

 

다른 하드웨어들을 다루기 위해서 컴퓨팅 구조에는 자체 COBOL컴파일러가 필요했다. 이 컴파일러는 어떤 컴퓨터에서 실행되든 동일한 COBOL소스코드를 수용할 수 있었는데 이러한 개념을 “Write Once Run Anywhere”라고 불렀다.

 

프로그래밍언어는 컴퓨팅 시스템에 대한 진입장벽을 낮췄다. 이는 전문가들에게만 한정되지 않고 많은 사람들이 작업에 컴퓨팅을 할 수 있게 되었다.

 

프로그래밍 언어가 발전함에 따라 하드웨어도 발전했고 그렇게 되었다.

 

세련되고 새로운 기능을 갖춘 언어는 항상 새롭게 나왔다. 그것들의 목표는

우리들이 말하는 그대로 기계어가 알아듣는 것이었다.

 

 

반응형
그리드형