• 제목/요약/키워드: Source Code Analysis

검색결과 436건 처리시간 0.029초

UTF-8 부호의 HDB-3스크램블링 최소화를 위한 문자의 원천부호화 규칙 (Source Coding Rule of Characters to Minimize HDB-3 Scrambling in Line Coder for UTF-8 code)

  • 홍완표
    • 한국전자통신학회논문지
    • /
    • 제10권9호
    • /
    • pp.1019-1026
    • /
    • 2015
  • 본 논문은 UTF-8 부호화된 문자의 원천부호가 회선부호기에 입력될 때 HDB-3 스크램블링을 최소화하도록 하는 문자의 원천부호화 규칙을 연구하였다. 기존 연구는 원천부호자체가 회선부호기에 입력될 때 HDB-3 스크램블링을 최소화하기 위한 문자의 원천부호화 규칙에 관한 내용이었으나 이번 연구에서는 원천부호가 UTF-8부호로 변환되면서 UTF-8부호와 원천부호간의 스크램블링 관계가 상호 대응적이지 않음을 분석하였다. 따라서 UTF-8 부호의 HDB-3 스크램블링 최소화를 위한 문자의 원천부호화 규칙이 없을 경우, UTF-8부호에서 스크램블링이 발생하는 부호를 분석하기 위해 원천부호를 모두 UTF-8부호로 변환한 후에 분석을 통해 스크램블링이 발생하지 않는 원천부호영역에서 부호화해야 한다. 제안된 UTF-8 부호에 대한 문자의 원천부호화 규칙을 적용할 경우, 이러한 복잡한 과정을 거치지 않고 스크램블링을 최소화 할 수 있는 문자의 원천부호화가 가능하다.

임베디드 소프트웨어의 소스 코드 품질 향상을 위한 Practice Patterns의 적용 (Applying Practice Patterns to Improve Source Code Quality of Embedded Software)

  • 홍장의
    • 정보처리학회논문지A
    • /
    • 제12A권7호
    • /
    • pp.589-596
    • /
    • 2005
  • 임베디드 소프트웨어는 하드웨어 플랫폼에 탑재하기 전, 소스 코드에 대한 품질을 검증하는 작업이 매우 중요하다. 임베디드 소프트웨어의 코드 품질을 향상시키기 위해서는 분석 및 설계 단계의 모델에 대한 품질과 생성된 코드에 대한 품질이 관리되어야 한다. 본 연구에서는 임베디드 소프트웨어의 소스 코드 품질을 향상시키기 위한 방법으로 Practice Pattern을 제안한다. 이는 모델링 과정이나 코딩 과정에서 개발자를 가이드 하는 절차 패턴으로써, 모델의 품질과 소스 코드 품질을 향상시키는 방법으로 사용될 수 있다. 제시하는 패턴의 적용은 기능의 정확성뿐만 아니라 성능, 모듈화, 재사용성 및 이식성 등과 같은 품질 요소들을 향상시킬 수 있을 것으로 보인다.

코드 비 일관적 식별자 검출 기법 (Detecting Inconsistent Code Identifiers)

  • 이성남;김순태;박수용
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제2권5호
    • /
    • pp.319-328
    • /
    • 2013
  • 소프트웨어 유지 보수 담당자는 코드 식별자를 중심으로 소프트웨어의 소스 코드를 이해한다. 그렇기 때문에 코드의 식별자를 비 일관적으로 사용하게 되면 소프트웨어를 이해하는데 어려움을 격게 되어 결국 소프트웨어의 유지보수 비용이 증가하게 된다. 이러한 비 일관적인 식별자 사용의 문제를 해결하기 위하여 개발자가 상호 검토하는 방법이 있으나 코드의 양이 많은 경우에 전체 코드를 확인하는 것은 불가능할 수 있다. 본 논문에서는 자연어 처리 기법을 사용하여 자동으로 Java 코드 내의 비 일관적인 식별자를 검출하기 위한 기법을 소개한다. 이 기법에서는 프로젝트 내의 모든 식별자를 추출 및 구문 분석하고, 구조상 유사어와 의미상 유사어를 분류한 후 최종적으로 제안된 규칙을 기반으로 비 일관적인 식별자를 검출한다. 본 논문에서는 지원 도구인 CodeAmigo를 개발하여 제안된 방법을 지원하였다. 우리는 지원 도구를 두 가지의 널리 알려진 Java기반 오픈 소스 프로젝트에 적용하고, 검출 결과의 정확도를 계산하여 제안된 접근 방법의 타당성을 확인하였다.

A Survey of Automatic Code Generation from Natural Language

  • Shin, Jiho;Nam, Jaechang
    • Journal of Information Processing Systems
    • /
    • 제17권3호
    • /
    • pp.537-555
    • /
    • 2021
  • Many researchers have carried out studies related to programming languages since the beginning of computer science. Besides programming with traditional programming languages (i.e., procedural, object-oriented, functional programming language, etc.), a new paradigm of programming is being carried out. It is programming with natural language. By programming with natural language, we expect that it will free our expressiveness in contrast to programming languages which have strong constraints in syntax. This paper surveys the approaches that generate source code automatically from a natural language description. We also categorize the approaches by their forms of input and output. Finally, we analyze the current trend of approaches and suggest the future direction of this research domain to improve automatic code generation with natural language. From the analysis, we state that researchers should work on customizing language models in the domain of source code and explore better representations of source code such as embedding techniques and pre-trained models which have been proved to work well on natural language processing tasks.

Quench analysis and protection circuit design of a superconducting magnet system for RISP 28GHz ECR ion source

  • Song, S.;Ko, T.K.;Choi, S.;Ahn, M.C.
    • 한국초전도ㆍ저온공학회논문지
    • /
    • 제18권2호
    • /
    • pp.37-41
    • /
    • 2016
  • This paper presents the developed quench analysis code and protection circuit design for a superconducting magnet system of 28GHz electron cyclotron resonance (ECR) ion source. The superconducting magnet is composed of a hexapole magnet and four solenoid magnets located outside of the hexapole one. All magnets are wound with NbTi composite wire and impregnated by epoxy. By using the developed characteristic analysis code, the normal zone resistance, decaying current and temperature rising can be estimated during quench. Also, the stored magnetic energy is successfully consumed from the series resistor of the designed protection circuit. The analytical results are compared with the experimental results to verify the developed quench analysis code and protection circuit.

바이트코드 분석을 이용한 자바 프로그램 표절검사기법 (A Plagiarism Detection Technique for Java Program Using Bytecode Analysis)

  • 지정훈;우균;조환규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권7호
    • /
    • pp.442-451
    • /
    • 2008
  • 대부분의 표절검사 시스템들은 소스코드를 이용해 유사도를 계산하고 표절 프로그램을 찾아낸다. 소스코드를 이용하여 표절검사를 수행할 경우, 소스코드 보안문제가 발생할 수 있다. 목적 코드를 이용한 표절검사는 소스코드 보안문제에 대한 좋은 대안이 될 수 있다. 본 논문에서는 자바 프로그램의 표절검사에 대하여 소스코드 없이 바이트코드를 이용해 표절검사를 수행하는 방법을 제시한다. 바이트코드를 이용한 표절검사는 크게 두 단계로 진행된다 먼저, 자바 클래스 파일로부터 메소드의 코드영역을 분석해 토큰 시퀀스를 생성한 다음 적응적 지역정렬을 이용해 유사도를 계산한다. 실험 결과, 소스코드와 바이트코드의 유사도는 비슷한 분포를 보였다. 또한, 소스코드 쌍과 바이트코드 쌍의 유사도 상관관계가 충분히 높게 측정되었다. 본 논문에서 제안한 바이트코드 표절검사 시스템은 소스코드를 이용해 직접 표절을 검사하기 전 단계에서 1차적인 검증도구로 활용할 수 있다.

소스코드와 실행코드의 상관관계 분석을 통한 최악실행시간 측정 방법 (Measuring Method of Worst-case Execution Time by Analyzing Relation between Source Code and Executable Code)

  • 서용진;김현수
    • 인터넷정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.51-60
    • /
    • 2016
  • 내장 소프트웨어는 실시간성 및 실행 환경으로부터의 독립성을 요구사항으로 갖는다. 실시간성 요구사항은 탑재된 태스크의 최악 실행 시간으로부터 영향을 받는다. 따라서 실시간성을 보장하기 위해서는 정적 분석 기반의 최악 실행 시간 분석 방법을 사용하여 프로그램의 최악 실행 시간을 파악하여야 한다. 그러나 기존의 최악 실행 시간 분석은 실행 환경으로부터 독립성을 고려하지 않는다. 이에 우리는 실행 환경으로부터 독립성을 제공하기 위해 소스코드로부터 실행 시간을 측정하는 방법을 제시한다. 이를 위해 실행 코드가 아닌 소스코드로부터 생성된 제어 흐름 그래프를 통해 실행 시간을 측정한다. 또한 소스코드로부터 생성된 제어 흐름 그래프에는 실행 시간 정보가 존재하지 않기 때문에, 이를 제공하기 위해 소스코드의 문장과 실행코드의 명령어와의 관계를 분석한다. 결과적으로 실행 시간 측정이 가능한 제어 흐름 그래프를 생성할 수 있다. 이를 통해 프로세서로부터 종속적인 부분을 매개변수화할 수 있기 때문에, 최악 실행 시간 분석 도구의 유연성을 향상시킬 수 있다.

작성자 분석과 CNN을 적용한 소스 코드 작성자 식별 프레임워크 (The Identification Framework for source code author using Authorship Analysis and CNN)

  • 신건윤;김동욱;홍성삼;한명묵
    • 인터넷정보학회논문지
    • /
    • 제19권5호
    • /
    • pp.33-41
    • /
    • 2018
  • 최근 인터넷 기술이 발전함에 따라 다양한 프로그램들이 만들어지고 있고 이에 따라 다양한 코드들이 많은 사람들을 통해 만들어진다. 이러한 측면을 이용하여 특정 작성자가 작성한 코드들 그대로 가져가 자신이 작성한 것처럼 보여주거나, 참고한 코드들에 대한 정확한 표기 없이 그대로 사용하여 이에 대한 보호가 점차 어려워지고 있다. 따라서 본 논문에서는 작성자 분석 이론과 합성곱 신경망 기반 자연어 처리 방법을 적용한 작성자 식별 프레임워크룰 제안한다. 작성자 분석 이론을 적용하여 소스 코드에서 작성자 식별에 적합한 특징들을 추출하고 이를 텍스트 마이닝에서 사용하고 있는 특징들과 결합하여 기계학습 기반의 작성자 식별을 수행한다. 그리고 합성곱 신경망 기반 자연어 처리 방법을 소스 코드에 적용하여 코드 작성자 분류를 수행한다. 본 논문에서는 작성자 분석이론과 합성곱 신경망을 적용한 작성자 식별 프레임워크를 통해 작성자를 식별하기 위해서는 작성자 식별만을 위한 특징들이 필요하다는 것과 합성곱 신경망 기반 자연어 처리 방법이 소스 코드등과 같은 특수한 체계를 갖추고 있는 언어에서도 적용이 가능하다. 실험 결과 작성자 분석 이론 기반 작성자 식별 정확도는 95.1%였으며 CNN을 적용한 결과 반복횟수가 90번 이상일 경우 98% 이상의 정확도를 보여줬다.

기계학습을 이용한 소스코드 정적 분석 개선에 관한 연구 (A Study on the Improvement of Source Code Static Analysis Using Machine Learning)

  • 박양환;최진영
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1131-1139
    • /
    • 2020
  • 소스코드에 대한 정적 분석은 광범위한 소스코드에 대해서 잔존하는 보안약점을 찾는 것으로 정적 분석 도구를 활용하여 점검을 하고, 그 결과에 대해서 정적 분석 전문가가 정탐 및 오탐 분석을 한다. 이 과정에서 분석양이 많고 오탐의 비율이 높아 많은 시간과 노력이 들어가게 되어 효율적으로 분석하는 방안이 요구되고 있다. 또한 전문가들은 정·오탐 분석을 할 때 결함이 발생한 라인의 소스코드만 보고 분석을 하는 경우는 드물다. 결함의 유형에 따라서 주변의 소스코드를 같이 분석하고 최종 분석 결과를 내리게 된다. 이러한 정적 분석 도구를 사용하여 전문가가 정·오탐을 판별하는 어려움을 해결하기 위해서 본 논문에서는 정적 분석 도구가 찾은 보안약점이 정탐인지 아닌지를 전문가가 아닌 인공지능을 통해 판별하는 방법을 제안한다. 또한 이러한 기계학습에 사용되는 학습 데이터(결함주변 소스코드)의 크기가 성능에 어떤 영향을 미치는지 실험을 통해 최적의 크기를 확인하였다. 이 결과를 통해 정적 분석 후 정·오탐을 분류하는 정적 분석 전문가의 업무에 도움을 줄 것으로 기대한다.

실행코드 비교 감정에서 주변장치 분석의 유효성 (Study on the comparison result of Machine code Program)

  • 김도현;이규대
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제16권1호
    • /
    • pp.37-44
    • /
    • 2020
  • 소프트웨어의 유사성 비교는 소스코드를 대상으로 한다. 소스코드는 프로그램 언어로 표현된 개발자의 지적 저작권으로 보호된다. 문서형식으로 작성된 프로그램 소스코드는 개발자의 전문지식과 아이디어가 포함된 내용을 포함하고 있다. 소프트웨어 저작권의 불법도용을 판단하기 위한 감정 작업은 원본과 비교본의 소스 코드를 대상으로 파일의 구성과 내용을 검증하는 방법으로 수행된다. 그러나 실제적으로 피고소인 측의 불성실한 목적물 제공으로 소스코드의 일대일 비교감정이 어려운 상황이 증가하고 있다. 이 경우 실행코드에 대한 비교감정이 수행되어야 하며, 역어셈블 방법, 역공학기법, 기능실행의 시퀀스 분석 등의 간접적인 방법이 적용된다. 본 논문에서는 소스코드제공이 어려운 상황에서 시스템과 실행코드 파일을 대상하는 하는 감정 사례를 통해 간접적인 비교결과의 유효성에 대해 분석하고, 감정결과에 활용하는 방안을 제시한다.