프로그래밍 언어 질문

wone28의 이미지

리눅스에서 C언어로 제작된 프로그램을 GDB로 뜯어보며 어셈블리어 + 시스템콜 호출에 의해 작동된다는 것을 보았습니다.

다른 언어들도 마찬가지 인지 궁금합니다. python 이나 ruby 등등 cpu 명령어단 , 시스템콜에 의한 조합으로

프로그램이 작동되는것인지 궁금합니다.

chadr의 이미지

최종적으로는 말씀하신 방법대로 동작하긴 합니다만.. c언어같이 100% 대치되는건 아니구요.
파이썬이나 루비 언어의 가상머신과 런타임이 그런 행동을 대신 해줍니다.

즉, 파이썬이나 루비로 만든 프로그램 자체는 실제 cpu에 맞는 어셈블리어가 아니라 그 언어들의 가상머신이 알아먹을 수 있는 중간언어로 변환됩니다. 그리고 가상머신이 나중에 실제 cpu에 맞는 어셈블리어로 변환하거나 에뮬레이션 해줍니다. 그리고 시스템콜과 같은건 그 언어의 런타임이 대신 수행해줍니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

wone28의 이미지

덕분에 쉽게 이해되었습니다.

wone28의 이미지

덕분에 쉽게 이해되었습니다.