본문 바로가기

2017/12/012

JIT(just-in-time) 컴파일 java가 갖는 가장 큰 장점은 플랫폼에 독립적으로 동작할 수 있다는 점이다. 그렇다면 전체적인 java 프로그램의 실행 과정은 어떻게 진행될까? 프로그래머가 작성한 소스코드는 자바 컴파일러(javac.exe)에 의해 byte code로 변환된다. 이러한 byte code는 JVM 상에서 동작하기 때문에 플랫폼에 독립적으로 동작할 수 있다는 장점이 있기에 porting과 같은 것을 고려할 필요가 없다. 변환된 byte code를 JVM이 실행한 플랫폼에 맞는 기계어로 변환한다. 다양한 플랫폼의 이식을 지원하기 위해 java가 지원하는 native methods을 통해 각 플랫폼에 맞는 기계어로 변환된다. java는 JIT 컴파일을 수행한다. JIT 컴파일(just-in-time compilation)은 .. 2017. 12. 1.
[c++]문자열 나누기(string tokenizer) C에서 문자열 나누기 C에서의 문자열 표현은 char 형태의 배열 또는 포인터로 구현된다. 즉 문자열을 표현하기 위한 primitive type이 존재하지 않는다. 에서 제공하는 strtok() 함수를 사용하여 문자열을 구분자를 기준으로 나눌 수 있다. 하지만 strtok는 문자 배열에만 사용이 가능하다는 단점이 있다. 즉 입력으로 고정된 길이의 문자 배열을 받아야 한다. C++에서 문자열 나누기 기본적으로 제공하는 STL 라이브러리는 없고, 직접 구현해서 활용해야 하는 듯하다. (정확하지는 않음.) string STL 이용 void Tokenize(const string & str, vector & tokens, const string & delimiters = " ") { // 맨.. 2017. 12. 1.