• 제목/요약/키워드: 네이티브 코드 생성

검색결과 13건 처리시간 0.02초

스택 기반 코드 변환기 설계 (Design of Translator for Stack-Based Code)

  • 김경수;김기태;조선문;심현진;유원희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2004년도 춘계학술발표대회
    • /
    • pp.337-340
    • /
    • 2004
  • 자바는 객체 지향언어로 네트워크 기반의 환경에서 응용프로그램을 효율적으로 개발을 위해 설계되었으며 특정 하드웨어나 운영체제에 영향을 받지 않고 동작 할 수 있는 높은 이식성을 가지고 있다. 하지만 자바 언어로 응용프로그램을 개발하면 다른 언어로 작성하는 것 보다 일반적으로 실행이 느리다는 단점이 발생하게 된다. 이를 극복하기 위해 자바 언어에 대한 최적화가 필요하다. 일반적으로 많이 쓰는 최적화 방법으로는 JIT와 같이 실행시간에 필요에 따라 컴파일하여 실행하는 방법과 바이트코드를 수행하고자 하는 특정 프로세서에 적합한 네이티브 코드를 생성하는 방법을 사용하고 있다. 하지만 이러한 방법들은 고유의 최적화 기법과 구현된 프로그램을 이용해서만이 최적화가 가능했고 또한 코드의 추출부터 최적화를 위한 모든 부분까지 구현해야하는 문제점이 있다. 또한 자바 바이트코드는 스택기반의 코드로써 명령어가 많고 표현이 명백하지 않다는 문제점을 가지고 있다. 따라서 분석과 변환이 어렵기 때문에 자바 바이트코드를 스택 기반이 아닌 분석과 최적화가 용이한 3-주소 형태로 변환하여 최적화 기법을 적용해야 한다 본 논문에서는 자바 바이트코드와 3-주소 형태의 중간 코드인 CTOC-B에 대해서 설계한다.

  • PDF

JNI 잠수 호출을 통한 C에서의 자바 객체 사용 (Using Java Objects in C through the JNI Function Calls)

  • 이창환;오세만
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2002년도 봄 학술발표논문집 Vol.29 No.1 (B)
    • /
    • pp.340-342
    • /
    • 2002
  • JNI는 자바와 네이티브 코드간에 상호 연동을 위해서 사용되는 인터페이스이고, JNI를 이용하면 C에서 자바 객체를 사용할 수 있다 C에서 자바 객체에 대한 연산을 하기 위해서는 객체 연산의 종류에 따른 일정한 JNI 함수 호출 패턴을 이용해야 한다. 사용자가 직접 자바에 대한 연산을 기술하는 경우, 사용자는 복잡한 함수 호출 패턴을 익히고 패턴에 필요한 정보를 직접 입력해야 하며, 패턴의 잘못된 기술과 올바르지 않은 정보의 입력에 따른 오류 발생할 가능성이 높은 문제점이 있다. 본 논문에서는 자바에서 점(".") 연산자를 사용하여 객체에 대해 연산하는 것처럼 C에서도 점 연산자를 사용하여 자바 객체에 대한 연산할 수 있는 방법을 제안하고 구현하였다. 제안된 방법은 점 연산자를 사용한 자바 객체에 대한 연산을 같은 의미를 가지는 여러 JNI 함수 호출로 변환하는 것으로, 사용자가 직접 기술해서 발생하는 여러 문제점을 제거하여 사용의 복잡성과 오류 생성의 발생 가능성을 줄이는 장점을 가지고 있다.

  • PDF

클라우드네이티브 애플리케이션 구축을 위한 마이크로서비스 식별 방법 (Identification of Microservices to Develop Cloud-Native Applications)

  • 최옥주;김유경
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제17권1호
    • /
    • pp.51-58
    • /
    • 2021
  • 최근 주목받고 있는 마이크로서비스는 독립적으로 개발될 뿐만 아니라 독립적으로 실행 및 배포가 가능하다는 장점 때문에, 클라우드 컴퓨팅 환경에서 보다 유연한 확장과 효율적인 협력을 보장할 수 있다. 이러한 영향으로 최근 마이크로서비스지향 애플리케이션 환경으로의 전환이 급격히 증가하고 있다. 마이크로서비스의 도입을 위해서는 무엇보다 모노리식 아키텍처로 구축된 단일 애플리케이션의 구성요소를 마이크로서비스 단위로 식별하는 문제가 선결되어야 한다. 본 논문에서는 레거시 시스템으로부터 마이크로서비스 식별의 문제를 알고리즘 기반으로 해결하기 이한 접근방법을 제안한다. 코드의 메타정보를 이용하여 그래프를 생성하고 클러스터링 알고리즘을 적용하여 마이크로서비스 후보를 추출한다. 추출된 마이크로서비스 후보에 대해 메트릭을 이용하여, 모듈화 품질을 평가한다. 또한 제안된 식별 방법의 효과를 검증하기 위해 벤치마크를 위해 많이 사용되는 공개 소프트웨어의 코드를 이용하여 후보 서비스를 도출하고, 메트릭을 이용하여 모듈화 수준을 평가한다. 결과적으로 좀더 작은 단위의 마이크로서비스로 식별해 내면서 모듈품질을 향상시키는 결과를 확인할 수 있다.