오른쪽 유익이기 때문에 약입니다 (단, "악한 것은 자세히"입니다). 언어는 종종 영어 문서 (C11에 대한 예를 들어, n1570 또는 ISO/IEC 9899:2011
)에서는, 사양입니다
알 수 있습니다. 일부 언어로 된 프로그램을 "실행"하기 위해 컴퓨터가 필요하지 않습니다 (비 윤리적으로 많은 인간 노예를 사용하거나 프로그램을 머리 속에 넣을 수 있습니다). 언어는 여러 가지 구현을 가질 수 있습니다 (일부는 해석기이고 다른 것은 컴파일러입니다). 기계어를 컴퓨터 언어로 쓰는 것으로 생각할 수 있습니다. (실제로는 ENIAC과 같은 첫 번째 컴퓨터의 경우였습니다. 1940 년대에는 기계 언어로 프로그래밍되었지만, 1975 년 십대로 박물관에 프로그래밍되었습니다. IBM1620 기계어).
그러나 사용자 컴퓨터 코드를 번역하려는 경우는 드뭅니다. 일부 비효율적 인 opcode를 사용하는 바이너리 프로그램을 상상해보십시오. 좀 더 적절한 기계 코드로 이들을 번역하는 다른 프로그램을 가질 수 있습니다. compilers에
읽기 wikipages, interpreters, machine code, compiler optimization, object code, bytecode, JIT compilation, emulators, microarchitecture, micro-operation, homoiconicity, partial evaluation, eval, closures
많은 컴파일 언어는 일부 C에 printf을 예를 들어 측면 (해석이). 일부 언어 구현은 즉석에서 기계 코드를 생성 할 수 있습니다 (Common Lisp) SBCL. 따라서 인터프리터와 컴파일러의 차이는 모호합니다.
컴파일 된 언어를 사용하는 경우에도 일부 운영 체제에서는 프로그램이 컴파일 한 후 일부 코드 (예 : C 또는 C++)를 컴파일하고 dynamically load을 생성 할 수 있습니다.나는 MELT에서 그런 일을하고있다.
일부 스크립팅 언어는 구현에 따라 바이트 코드 또는 기계 코드로 변환됩니다 (예 : V8 javascript engine). 제 생각에는 turing-completeness이 컴파일되는 것보다 (더 많은 스크립팅 언어와 컴파일 된 언어로 공유되는) 더 중요한 기능입니다.
나는 스크립팅 언어와 컴파일 언어 사이에 명확한 구분이 컴파일러는 또한 통역을 수있는 몇 가지 언어 (그리고 같은 언어의 구현이 특히 때문에,이 있다는 것을 확실하지 않다 : Ocaml가있다 ocaml
- 최상위 인터프리터 - ocamlc
- 바이트 코드 컴파일러 - 및 ocamlopt
- 네이티브 컴파일러 -); 나는 반대로 컴파일 된 해석과 해석 된 구현 사이의 연속체를 보았다.
x86은 스크립트라고 할 수 있습니다. 이것은 프로세서의 기본 스크립트 일 뿐이지 만 파이썬 스크립트와 달리 사람에게는 읽기 쉽지 않습니다. – sashoalm
http://stackoverflow.com/help/dont-ask 때문에 주제가 벗어난 것보다 동화에 대해 토론하고 싶다면 해결할 실제 문제는 없습니다. "나는 궁금합니다. 다른 사람들이 내가 좋아하는 것처럼 느껴지면 ... "라고 대답하십시오. 그렇지 않으면 해결해야 할 프로그래밍 문제가 무엇인지 더 자세히 설명하십시오. – xmojmr
http://programmers.stackexchange.com/ –