• 제목/요약/키워드: 컴파일러 검사

검색결과 27건 처리시간 0.027초

VHDL-to-C 사상을 위한 VHDL 컴파일러 전반부의 설계 (A deisgn of VHDL compiler front-end for the VHDL-to-C mapping)

  • 공진흥;고형일
    • 한국통신학회논문지
    • /
    • 제22권12호
    • /
    • pp.2834-2851
    • /
    • 1997
  • 본 논문에서는 VHDL '87 및 '93 LRM의 전체 사양을 지원하며 VHDL-to-C 사상의 전처리 과정을 수행하는 VHDL 컴파일러 전반부의 설계 및 구현에 대해서 논한다. VHDL 컴파일러 전반부는 I)VHDL의 계층적 구조체, 선언 영역 및 가시성, 다중 정의 및 동형 이의어, 병행적 다중 스택 구조를 표현하기 위해서 분석 터미널 데이터에 심볼 트리를 구성하였으며, 2) VHDL 고유의 객체, 타입 및 서브타입, 속성과 연산자 등을 나타내기 위한 구조체 및 지원 함수를 설계하였고, 3) VHDL의 병행문/순차문, 행위/구조 기술, 동기 메커니즘 등을 분석하여 VHDL-to-C 사상에 필요한 어의 정보를 구축하고, 4) VHDL 분석 과정에서 어의 데이터의 저장 및 검색이 효과적으로 이루어 지도록 어의 토큰 정의 및 어의 전파 기능 등을 설계하였다. Validation suite를 이용한 실험에서 VHDL 컴파일러 전반부는 LRM 전체 사양을 분석할 수 있음을 확인하였고, VHDL의 계층성/가시성/병행성/어의 검사 등을 효과적으로 처리하기 위해 설계 및 구현된 심볼 트리와 어의 토큰 등의 분석 데이터 모델에 대한 성능 분석 실험에서 VHDL컴파일러 전반부는20- 30%의 개선 효과를보였다.

  • PDF

자바 Ahead-of-Time 컴파일러에서의 효율적인 예외처리 방법 (Efficient Exception Handling in Java Ahead-of-Time Compilation)

  • 정동헌;박종국;이재목;배성환;문수묵
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (1)
    • /
    • pp.823-825
    • /
    • 2005
  • 자바는 이식성과 보안의 장점으로 인하여 내장형 시스템에서 널리 사용되고 있으나 인터프리터를 통한 바이트코드의 수행으로 인하여 성능이 저하되는 문제를 포함하고 있다. 이를 해결하기 위한 한 방법으로 수행시간 전에 바이트코드를 기계어 코드로 미리 번역하여 수행시간에는 기계어 코드가 수행되도록 하는 Ahead-of-Time 컴파일러 (AOTC)가 사용되고 있다. 특히 바이트코드를 C코드로 변환한 다음 기존의 컴파일러를 이용하여 기계어 코드를 생성하는 방식을 많이 택하고 있다. 본 논문에서는 AOTC에서 효율적인 예외처리 (exception handling) 기법을 제안한다. 기존의 AOTC 에서는 예외를 발생하는 메쏘드와 예외를 처리하는 메쏘드가 다른 경우 setjmp/longjmp를 이용하여 예외처리를 수행하고 있으나 우리는 메쏘드 호출 후의 예외 검사를 통해 예외처리를 수행한다. 우리는 제안된 예외처리 방법은 Sun의 CDC 가상 머신을 위해 개발된 AOTC 에 구현되었으며 SPECjvm98 벤치마크에서의 실험을 통해 setjmp/longjmp 방식에 비해 $1.3\%$에서 $154\%$까지의 성능향상이 가능함이 확인되었다.

  • PDF

정의되지 않은 행동에 의한 안전성 검사 무효화 탐지 기법 (Detection of invalidated sanity checks caused by undefined behaviors)

  • 이종협
    • 정보보호학회논문지
    • /
    • 제24권1호
    • /
    • pp.215-219
    • /
    • 2014
  • C언어에는 프로그래머의 의도와는 다르게 동작하는 정의되지 않은 행동(undefined behavior)들이 존재한다. 정상적인 데이터를 확인하기 위한 안전성 검사에서 정의되지 못한 행동에 해당되는 경우를 인지하지 못하고 사용하여 안전성 검사가 컴파일러에 의해 무효화 되는 문제점이 발생한다. 본 논문에서는 이러한 문제점들을 해결하기 위해 소스코드에서 안전성 검사를 표기하고 실행파일에서 유효성을 확인하는 자동화된 시스템을 제안한다.

eFlowC : 네트워크 관리를 위한 패킷 처리 언어 (eFlowC: A Packet Processing Language for Network Management)

  • 고방원;유재우
    • 한국컴퓨터정보학회논문지
    • /
    • 제19권1호
    • /
    • pp.65-76
    • /
    • 2014
  • 본 연구는 패킷 처리를 위한 고급 프로그래밍언어 eFlow를 제안하고 이를 지원하는 개발환경을 구현한다. 또한 개발자들이 가장 익숙하고 배우기 쉬운 C 언어를 기반으로 하여 C 언어의 문법과 의미를 유지하면서, 패킷 처리에 불필요한 기능들을 제거하고 패킷 처리에 필요한 패킷 데이터, 데이터베이스 및 스트링 바이트 정보 검사, 이벤트 처리 등을 수행하기 위한 고급 프로그래밍 언어를 설계하고, 기존의 언어나 컴파일러 기술을 적용하면서 패킷 처리를 위해 필요한 언어의 기능과 컴파일 과정을 설명한다. X11 등과 같은 DPIC 장비에 활용하기 위해 이식성과 확장성을 고려한 가상 기계인 eFVM을 설계하고, 이를 위한 컴파일러와 시뮬레이터 및 디버거와 같은 개발 환경을 갖추어 실제 많이 사용되고 있는 다양한 응용 프로그램을 실험하여 제안한 언어의 효용성을 평가하고 있다. 패킷 처리를 위해 갖추어야 할 고급 언어의 기능과 형식 및 그 의미를 정의한 연구가 거의 없이 이루어진 실험에 의의가 있다.

네트워크 보안 관리를 위한 계층적 위임 모델 (Hierarchical Delegation Model for Network Security Management)

  • 이강희;송병욱;배현철;김장하;김상욱
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2004년도 봄 학술발표논문집 Vol.31 No.1 (A)
    • /
    • pp.238-240
    • /
    • 2004
  • 본 논문에서는 대규모 네트워크 보안관리를 위한 계층적인 위임 모델을 제시한다. 대규모 네트워크는 라우터, 방화벽, 침입 탐지 시스템, 웹 서버 등의 수많은 구성요소로 이루어진 네트워크들의 집합이며, 각 네트워크마다의 독립적인 지역 정책들로 관리되어 서로간의 협동이 이루어질 수 없기 때문에 이를 효과적으로 통제하고 일괄적으로 관리하기 위해 계층적인 위임 모델이 사용되어야 한다. 제시하는 모델의 중요 구성 요소로는 관리 서버. 정책 설정 고 수준 언어 고 수준 언어 컴파일러, 도메인 서버. 인터프리터, 정책 관리 데이터베이스가 있다. 관리 서버에서 정책 설정 고 수준 언어를 사용하여 세밀하고 정교한 정책을 작성할 수 있고, 이 정책을 고 수준 언어 컴파일러를 통하여 최하위 노드들에게 적절하고 간결한 형태로 만들어낸다. 각 도메인 서버는 이 결과를 하위의 도메인 서버나 인터프리터에게 전달하면서 Keynote 신뢰 관리 시스템을 이용하여 권한을 위임한다. 그리고 인터프리터는 정책을 라우터, 방화벽, 웹 서버 등의 하위 노드에 맞는 실제 룰로 변환하녀 상위 관리 서버에서 전달한 정책을 적용하게 된다. 정책을 적용한 결과를 상위로 전달하여 데이터베이스를 구축한 뒤 후에 작성된 정책이 기존의 정책과 충돌하는지 검사에 이용하고, 충돌한다면 협상 과정을 거쳐 정책에 순응할 수 있는 결과를 도굴하게 된다. 또한 네트워크에서 많은 새로운 형태들의 노드가 추가될 수 있는데, 각각의 인터프리터만 추가함으로서 다양한 하위 노드를 충족시킬 수 있는 확장성을 제공한다.

  • PDF

Test System용 언어 및 번역기 설계 (Design of a Language and a Translator for the Test System)

  • 고훈준;류진수;김기태;유원희
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 봄 학술발표논문집 Vol.28 No.1 (A)
    • /
    • pp.61-63
    • /
    • 2001
  • 테스트 시스템(Test System)은 반도체 제품을 웨이퍼(Wafer) 또는 완정된 제품 상태 하에서 전기적 특성과 성능을 검사하고 그 결과를 산출해내는 검사장치이다. 테스트 시스템은 크게 하드웨어와 소프트웨어로 이루어져 있으며 시스템을 제어하고 사용자 인터페이스 및 각종 자료를 처리하는 소프트웨어는 그 중요성이 한층 더 부각되고 있다. 그러나 국내 고성능의 테스트 시스템을 개발하는 기업들의 하드웨어 개발은 잘 이루어지고 있으나 소프트웨어의 개발은 어려운 실정이다. 본 논문에서는 테스트 시스템에서 사용하고 있는 테스트 프로그램언어와 컴파일러의 문제점을 지적하고, 문제점을 해결할 수 있는 프로그램밍 언어 T를 설계한다. 그리고 그 언어를 컴파일 할 수 있는 번역기를 설계하여 테스트 관리 시스템의 소프트웨어를 향상시키고자 한다.

DTV 콘텐츠 검증 시스템을 위한 Java 컴파일러의 개발 (Development of a Java Compiler for Verification System of DTV Contents)

  • 손민성;박진기;이양선
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2007년도 춘계학술발표대회
    • /
    • pp.1487-1490
    • /
    • 2007
  • 디지털 위성방송의 시작과 더불어 본격적인 데이터 방송의 시대가 열렸다. 데이터방송이 시작 되면서 데이터방송용 양방향 콘텐츠에 대한 수요가 급속하게 증가하고 있다. 하지만 양방향 콘텐츠 개발에 필요한 저작 도구 및 검증 시스템은 아주 초보적인 수준에 머물러 있는 것이 현실이다. 그러나 방송의 특성상 콘텐츠 상에서의 오류는 방송 사고에까지 이를 수 있는 심각한 상황이 연출 될 수 있다. 본 연구 팀은 이러한 DTV 콘텐츠 개발 요구에 부응하여, 개발자의 콘텐츠 개발 및 사업자 또는 기관에서의 콘텐츠 검증이 원활이 이루어 질수 있도록 하는 양방향 콘텐츠 검증 시스템을 개발 중이다. 양방향 콘텐츠 검증 시스템은 Java 컴파일러, 디버거, 미들웨어, 가상머신, 그리고 IDE 등으로 구성된다. 본 논문에서 제시한 자바 컴파일러는 양방향 콘텐츠 검증 시스템에서 데이터 방송용 자바 애플리케이션(Xlet)을 컴파일하여 에뮬레이팅 하거나 런타임 상에서 디버깅이 가능하도록 하는 바이너리형태의 class 파일을 생성한다. 이를 위해 Java 컴파일러는 *.java 파일을 입력으로 받아 어휘 분석과 구문 분석 과정을 거친 후 SDT(syntax-directed translation)에 의해 AST(Abstract Syntax Tree)를 생성한다. 클래스링커는 생성된 AST를 탐색하여 동적으로 로딩 되는 파일들을 연결하여 AST를 확장한다. 의미 분석과정에서는 확장된 AST를 입력으로 받아 참조된 명칭의 사용이 타당한지 등을 검사하고 코드 생성이 용이하도록 AST를 변형하고 부가적인 정보를 삽입하여 ST(Semantic Tree)를 생성한다. 코드 생성 단계에서는 ST를 입력으로 받아 이미 정해 놓은 패턴에 맞추어 Bytecode를 출력한다.ovoids에서도 각각의 점들에 대한 선량을 측정하였다. SAS와 SSAS의 직장에 미치는 선량차이는 실제 임상에서의 관심 점들과 가장 가까운 25 mm(R2)와 30 mm(R3)거리에서 각각 8.0% 6.0%였고 SAS와 FWAS의 직장에 미치는 선량차이는 25 mm(R2) 와 30 mm(R3)거리에서 각각 25.0% 23.0%로 나타났다. SAS와 SSAS의 방광에 미치는 선량차이는 20 m(Bl)와 30 mm(B2)거리에서 각각 8.0% 3.0%였고 SAS와 FWAS의 방광에 미치는 선량차이는 20 mm(Bl)와 30 mm(B2)거리에서 각각 23.0%, 17.0%로 나타났다. SAS를 SSAS나 FWAS로 대체하였을 때 직장에 미치는 선량은 SSAS는 최대 8.0 %, FWAS는 최대 26.0 %까지 감소되고 방광에 미치는 선량은 SSAS는 최대 8.0 % FWAS는 최대 23.0%까지 감소됨을 알 수 있었고 FWAS가 SSAS 보다 차폐효과가 더 좋은 것으로 나타났으며 이 두 종류의 shielded applicator set는 부인암의 근접치료시 직장과 방광으로 가는 선량을 감소시켜 환자치료의 최적화를 이룰 수 있을 것으로 생각된다.)한 항균(抗菌) 효과(效果)를 나타내었다. 이상(以上)의 결과(結果)로 보아 선방활명음(仙方活命飮)의 항균(抗菌) 효능(效能)은 군약(君藥)인 대황(大黃)의 성분(成分) 중(中)의 하나인 stilbene 계열(系列)의 화합물(化合物)인 Rhapontigenin과 Rhaponticin의 작용(作用)에 의(依)한 것이며, 이는 한의학(韓醫學) 방제(方劑) 원리(原理)인 군신좌사(君臣佐使) 이론(理論)에서 군약(君藥)이 주증(主症)에 주(主)로 작용(作用)하는 약물(藥物)이라는 것을 밝혀주는 것이라고

어셈블리어 코드 기반의 Invalid Function Pointer Access Error 가능성 검출 (Detection of Potential Invalid Function Pointer Access Error based on Assembly Codes)

  • 김현수;김병만
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국해양정보통신학회 2010년도 춘계학술대회
    • /
    • pp.938-941
    • /
    • 2010
  • 일반적으로 컴파일러가 프로그램 번역시 메모리 사용 오류에 대한 검사도 병행하지만, 코드 레벨에서는 검사가 불가능한 함수 포인터는 정상적인 검사가 매우 힘들다. 이에 본 논문에서는 실행 프로그램을 역어셈블하여 만들어진 어셈블리 언어 프로그램을 구문 분석하여 함수 포인터 사용의 형태(패턴)를 어셈블리 명령어 전이도를 기반으로 "Invalid Function Pointer Access Error"에 대한 오류 가능성을 검출한다. 검사대상인 3개 프로그램은 약 10,000개의 함수와 1,000,000 개의 어셈블리 명령어로 구성되어 있으며, 본 논문에서 제안한 방법을 사용하여 함수 포인터의 사용 오류를 검출한 결과 1,100개의 함수 포인터 사용 중 약 500개의 비정상적 함수 포인터의 사용을 검출하였으며 검출에 걸린 시간은 총 82초 정도가 소요되었다.

  • PDF

유효한 XML 환경에서의 효율적인 갱신 충돌 탐지 기법 (An Efficient Detection of Conflicting Updating in valid XMLs)

  • 변창우;윤일국;박석
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2007년도 한국컴퓨터종합학술대회논문집 Vol.34 No.1 (C)
    • /
    • pp.1-6
    • /
    • 2007
  • XML 전용 데이터베이스 시스템의 등장 및 갱신 연산 지원되면서 갱신 연산의 유효성 검사 및 효율적인 갱신 연산의 충돌 감지 기법의 필요성이 대두되고 있다. 이러한 필요성은 잘 정형화된 XML 문서와는 달리 스키마의 제약사항을 준수해야 하는 유효한 XML 문서 환경에서 절실히 요구된다. 특히, 효율적인 갱신 연산의 충돌 탐지 기법은 질의 컴파일러의 질의 최적화 및 트랜잭션 관리의 높은 병행수행 목적을 달성하는데 필수적인 요소이다. 본 논문은 판독-갱신 및 갱신-갱신 연산 사이의 충돌을 정의하고, 유효한 XML 환경에서 효율적으로 충돌을 감지하는 기법을 제안한다.

  • PDF

컴파일러 확장을 이용한 효율적인 버퍼오버플로우 공격 방지 기법 (Efficient Defense Method of Buffer Overflow Attack Using Extension of Compiler)

  • 김종의;이성욱;홍만표
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2001년도 가을 학술발표논문집 Vol.28 No.2 (1)
    • /
    • pp.730-732
    • /
    • 2001
  • 최근 들어 버퍼오버플로우 취약성을 이용한 해킹 사례들이 늘어나고 있다. 버퍼오버플로우 공격을 탐지하는 방법은 크게 입력 데이터의 크기검사, 비정상적인 분기 금지, 비정상 행위 금지의 세가지 방식 중 하나를 취한다. 본 논문에서는 비정상적인 분기를 금지하는 방법을 살펴본 것이다. 기존의 방법은 부가적인 메모리를 필요로 하고, 컨트롤 플로우가 비정상적인 흐름을 찾기 위해 코드를 추가하고 실행함으로써 프로그램 실행시간의 저하를 단점으로 이야기할 수 있다. 본 논문에서는 부가적인 메모리 사용을 최소한으로 줄임으로 메모리 낭비를 저하시키고 실행시간에 컨트롤 플로우가 비정상적으로 흐르는 것을 막기 위한 작업들을 최소화 함으로서 기존의 방법보다 더 효율적인 방법을 제안하고자 한다.

  • PDF