일반적으로 프로그래밍 언어는 무엇입니까?
프로그래밍 언어는 컴퓨터와 대화하는 유일한 방법입니다. 대략 컴퓨터는 0과 1 만 이해할 수 있기 때문에 (컴퓨터는 두 개의 상태만을 취할 수있는 스위치로 트랜지스터로 만들어 졌기 때문에이 두 상태를 0과 1이라고 부릅니다.) 우리는 인간으로서 컴퓨터 과학자들이 바이너리 (0,1)의 모든 명령에서 좀 더 인간이 읽을 수있는 형태로 어셈블리 언어라고 일대일로 매핑하기로 결정했습니다.
예를 들어 다음과 같은 명령이 있다면 :
11001101
어셈블리에서는 다음과 같이 호출됩니다.
LOAD_A 15
이것은 레지스터 a의 내용을 메모리 위치 15에로드하는 것을 의미합니다. 내가 말했듯이 트랜지스터의 두 상태 또는 컴퓨터의 다른 것에 대해 0과 1을 선택하는 것과 같은 관습이라고 생각합니다. 어셈블리 언어를 기억하는 것이 더 쉬울 것입니다. 따라서 사용자는 어셈블리 코드를 작성하고 일부 프로그램 (이 경우 어셈블러)은 코드를 이진 명령어 또는 기계 언어로 변환합니다.
그러나 매일 컴퓨터가 개선되면서 10000과 같은 더 많은 지침을 가진 더 복잡한 프로그램을위한 공간이있었습니다.
이 경우 어셈블리와 같은 일대일 매핑이 작동하지 않으므로 다른 고급 프로그래밍 언어가 만들어졌습니다. 그들은 예를 들어 사용자가 만든 화면에 무언가를 인쇄하기 위해 I / O 장치와의 관계가 약 80 개의 지시 사항을 취한다면 여기에서 무언가를 수행 하고이 코드를 하나의 라이브러리에 패키지하고 printf와 같이 호출 할 수 있다고 말했습니다. 또한이 printf를 관련 어셈블리 코드로 변환 할 수있는 다른 프로그램을 작성하면 어셈블리가 나머지를 수행합니다. 그래서 그들은 그것을 컴파일러라고 부릅니다.
이제 화면에 무언가를 인쇄하려는 모든 사용자는 바이너리 또는 어셈블리로 모든 명령을 작성할 필요가 없으며 printf ( "something")을 입력하면 컴파일러 및 어셈블러와 같은 모든 프로그램이 나머지를 수행합니다. 나중에 다른 긴 코드는 같은 방식으로 패키지되어 다른 사람들의 작업을 용이하게합니다. 파이썬에서 수천 줄의 코드를 하나의 코드로 단순화하고 다른 사람들의 사용을 위해 포장 할 수 있음을 알 수 있습니다.
그래서 파이썬으로 많은 다른 코드를 압축하고 모듈 (libray, package 또는 호출하려는 것)을 만들었고 그 모듈을 mgh (내 이름)라고 부릅니다. 이제 우리가 어떻게 든이 mgh를 만들었습니다.
import mgh
mgh.connect(ip,port.data)...
지정된 IP 및 포트 번호를 사용하여 원격 서버에 쉽게 연결하고 나중에 데이터를 전송할 수 있습니다. 이제 사람들은 한 줄을 사용하여 모든 작업을 수행 할 수 있지만 mgh 파일에서 검색 된 많은 코드가 실행되고 있습니다. 패키징은 실행 프로세스 속도를 높이기위한 것이 아니라 다른 프로그래머의 작업을 용이하게합니다. 따라서 여기에서 누군가가 코드를 먼저 사용하려면 파일을 가져온 다음 파이썬 인터프리터가 코드의 모든 코드를 인식하므로 코드를 해석 할 수 있습니다.
이제 프로그래밍 언어를 만들고 실행하려면 먼저 번역이 필요합니다. 예를 들어 구문을 이해하고 c로 변환 할 수있는 프로그램을 작성한다고 가정합니다 (이 경우에는 번역 된 후). c에서 나머지는 c 컴파일러에 의해 처리 된 다음 어셈블러, 링커 등에 의해 처리됩니다. 비록 c로 먼저 변환되어야하기 때문에 더 느린 가격을 지불해야 할지라도.
이제 당신이 할 수있는 또 하나의 일은 c와 마찬가지로 모든 코드를 동등한 어셈블리 언어로 번역 할 수있는 프로그램을 만드는 것입니다. 그러나이 경우 프로그램은 직접 수행 할 수 있으며 나머지는 링커. 이 프로그램을 컴파일러라고합니다.
그래서 내가 이야기하고있는 것은 시스템이 이해하는 유일한 코드는 0,1이므로 어쨌든 구문을 변환해야합니다. 이제 운영 체제에서 어셈블러, 링커 및 ...와 같은 다양한 프로그램이 있습니다. 코드를 어셈블리로 변환 할 수 있다면 나머지를 처리 할 수 있거나 코드를 해당 언어로 변환하여 다른 프로그래밍 언어 컴파일러를 사용할 수도 있다고 말한 것입니다.