
- 프로그램 : 명령의 집합
- 컴파일러(Compiler) : 컴파일을 수행하는 프로그램
- 컴파일(Compile) :
。사람이 이해 가능한 언어를 코드로 작성 후 컴퓨터가 이해할 수 있는 기계어(binary or machine code)로 변환하는 과정.
。컴파일 방식 언어 : C# , Java , C , C++ ...
(인터프리팅 방식 언어의 경우 : Python , R , JavaScript..)
=> 프로그램의 code를 한번에 기계어로 변환 후 실행.
。그러나 플랫폼(CPU or OS)마다 기계어를 해석하는 방법이 다르므로 플랫폼이 달라지면 컴파일러도 달라져야한다.
=> JVM(Java Virtual Matching) 도입.JVM(Java Virtual Matching) :
Java byte code를 실행하기 위한 가상 프로세서.
어느 플랫폼이든 byte code가 호환되게 한다.
=> byte code는 JVM이 존재하는 플랫폼일 경우 전부 실행이 가능하다.
C#
- .NET Framework : 윈도우 계열 플랫폼에 호환용도로 설계. 플랫폼에 독립적으로 적용이 가능.
- CLR(Common Language Runtime) :
。CLI(Common Language Infrastructure)의 실행 Engine 부분.
。Java의 JVM과 동일 역할 수행.
。IL(Intermediate Language : 중간단계 언어 : Compiled code)를 해석해서 실행.- C# 등의 .NET 언어는 바로 기계어로 컴파일하지 않고 중간언어(IL)로 컴파일한다.
예를들어 , Hello.cs의 파일을 Compile 시 bin 폴더에 exe 파일이 생성되며 , 해당 exe 파일은 IL로 되어있음!
=> 명령프롬프트 창으로 해당 exe 파일 실행 시 기계어로 Compile 되게 된다.
- Class : 일단의 data와 이와 관계된 함수 , 메소드를 포함하는 프로그램 기본단위.
- Main Method : C#은 Main method가 실행 후 종료할 때 까지 C# 응용프로그램이 수행.
- Name Space : Class 를 그룹핑하는 틀로서 , 다른 namespace를 포함 가능.