프로그래밍/이론

컴파일러와 바이트코드

kingroad 2018. 5. 30. 16:06


언어

필요 컴파일러

OS

명령어 처리체계


C

C Compiler

Windows

32bit

Windows용 32bit C Compiler

C

C Compiler

Linux

64bit

Linux용 64bit C Compiler

C

C Compiler

Mac

32bit

Mac용 32bit C Compiler

  • CPU, OS별로 기계어 배치가 다르기때문에 전용 컴파일러가 필요하다.

  • 유닉스에는 기본적으로 컴파일러가 포함되어 있다.

  • Windows는 컴파일러가 포함 안됨.

  • 자바는 운영체제의 컴파일러에 관계 없이 중간형태의 기계어인 bytecode(= P code)가 컴파일러를 통해 생성된다. (*.class)

  • 그렇기에 bytecode는 운영체제의 종류에 따라 실행해주는 player[JVM]가 필요하다.

  • JRE는 JVM 이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다

  • 개발자는 JDK를 설치하여 사용한다. (JDK = JRE + Development Tool)

OS

명령어 처리체계

JVM

Windows

32bit

Windows용 32bit JVM

Linux

32bit

Linux용 32bit JVM


  • 1파일 1클래스를 작성하는 것이 유지보수에 도움이 된다.

  • 클래스 앞에 접근지정자 public를 붙이면 같은 프로젝트 내 모든 클래스에서 사용할 수 있도록 한다. 지정자를 안붙이면 default상태로 같은 패키지 내에 있는 클래스에서만 사용 가능하다.

  • public이 붙은 클래스는 파일명과 동일해야만 한다. => 별도 파일로 분리하는 것이 편함.

  • 소스파일이 많아졌을 때의 관리를 위해 소스와 클래스파일을 별도로 분리해 보관하는 것이 좋다. => 패키지명을 지정함으로 이 소스가 어떤 패키함에 있는지 관리하기 편하게 한다.

  • 소스는 src폴더, 클래스파일은 bin폴더에 보관하는 것이 일반적이다. => javac -d ./bin … 등 처럼 저장할 폴더를 지정해줘야 한다.

  • 폴더명은 왠만해서는 소문자로 통일하라.(간혹가다 대소문자를 구분하는 OS(Linux)가 있기때문)

  • 컴파일한 클래스 파일을 실행할 때에도 클래스 파일이 어디에 있는 지 위치를 지정해줘야한다. => java -classpath(-cp) ./bin … 처럼 파일의 위치를 지정해줘야한다.


  • Product(실체, 개념) - [Programming](추상적인 수치로 변형 ex 소리, 영상 등을 2진데이터로 변형 : 추상화) -> data(추상적) - [가공] -> Data Information -> Information

  • 데이터 표기법 : Literal