• Title, Summary, Keyword: 자바 프로그래밍 언어

Search Result 101, Processing Time 0.046 seconds

Java Synchronization for Distributed Computing Environment (분산된 컴퓨팅 환경을 위한 자바 동기화)

  • 이상윤
    • Proceedings of the Korean Information Science Society Conference
    • /
    • /
    • pp.391-393
    • /
    • 2004
  • 자바는 쓰레드 상호간의 동기를 프로그래밍 언어 자체의 기능으로 제공하고 있으므로 자바가 제공하는 동기화 메커니즘과 쓰레드는 병행처리를 수행하는 응용프로그램을 작성하는데 상당한 역할을 담당할 수 있다. 이에 따라, 병행처리와 관련된 자바의 기능을 분산된 컴퓨팅 환경에 적용하기 위한 많은 연구결과가 있다. 본 연구팀 에서는 자바 프로그램의 객체변환을 통하여 분산된 컴퓨팅 환경에서 동작하도록 지원하는 시스템을 발표한 바 있으나 분산처리와 관련된 기능을 지원하는 것으로 제한되었다. 병행처리를 수행하는 레거시 자바 프로그램을 분산된 컴퓨팅 환경에서 동작시키기 위하여 TORB(Transparent Object Request Broker)라고 명명된 이 시스템의 기능 확장을 시도하고 있으며 관련된 많은 문제들을 해결하였다. 본 논문에서는 서로 다른 컴퓨터에서 동시에 동작하는 자바 쓰레드간의 동기문제를 해결하기 위한 방안을 제시한다. 이는 단일 컴퓨팅 환경에서의 자바 동기화 메커니즘과 동일한 효과를 분산된 컴퓨팅 환경에서 얻을 수 있도록 지원하는 방안이며 TORB를 위하여 고안된 것이다.

  • PDF

A Design of Graphic Structured Analysis and Metrics Tool for Java Program (자바 프로그램의 그래픽 구조 분석과 메트릭스 생성 도구의 설계)

  • 정지환;황선명
    • Proceedings of the Korean Information Science Society Conference
    • /
    • /
    • pp.516-518
    • /
    • 1999
  • 고속으로 발전하는 컴퓨터 분야에 있어서 소프트웨어는 좀더 복잡해지고 대형화 되어갔다. 이에 따른 소프트웨어의 테스팅은 소프트웨어 재사용성이나 유지보수, 오류 검출을 하기 위한 하나의 수단으로 사용되어져 가고 있으며, 보편화 되어가고 있다. 그리고 소프트웨어 개발 방법이 구조적 프로그래밍 기법에서 객체지향 프로그래밍 기법으로 변화할 수 옥 이에 따른 소프트웨어 테스팅 역시 구조적 프로그래밍 기법에서 사용하던 테스팅 방법들을 객체지향적 개념에 맞게 바꾸어 나가는 연구들이 많이 이루어지고 있다. 논문에서는 이러한 객체지향 테스팅 기법에서 사용하는 메트릭스들을 선정하여 이를 자바언어로 작성된 프로그램에 적용하고 그 결과물들을 그래픽컬한 표현으로 나타내어 편리한 테스트 환경을 지원하는 도구를 설계 및 구현하였다.

  • PDF

A Design of Profile Based Generational Garbage Collector in Java (자바에서 프로파일에 기초한 세대기반 가비지 콜렉터 설계)

  • 김일부호;오세만
    • Proceedings of the Korean Information Science Society Conference
    • /
    • /
    • pp.388-390
    • /
    • 1999
  • 자바는 자동 메로리 회수(garbage collection) 방식을 채택한 범용 프로그래밍 언어로 자바 가상머신(JVM)이 설치된 다양한 플랫폼에서 사용되어 지고 있다. 현재 자바에서 사용되는 가비지 콜렉터는 휴지(pause) 시간이 상당히 길어 짧은 응답시간을 요구하는 서버 및 실시간 응용 프로그램에는 적합하지 않은 표시-압축 기법을 사용한다. 이를 보완하기 위해 자바 HotSpotTM 성능 엔진에서 세대기반(generational) 복사 기법에 기반을 둔 혼성(hybrid) 가비지 콜렉터를 사용하고 있으나, 상당히 큰 오버헤드를 보이고 있어 다양한 응용 프로그램의 특성을 수용하기에는 개선의 여지가 많다. 본 논문에서는 세대기반 기법을 기반으로, 자바와 자바 가상머신이 가진 특성들과 실행시간 객체의 타입 및 스택 정보를 이용하는 가비지 콜렉터를 설계한다. 또한, 힙 프로파일 분석기를 구현하고, 이를 통해 응용 프로그램에 적합한 메모리 구조를 분석하고, 가비지 콜렉터에 적용할 수 있도록 한다.

  • PDF

The Development of Training Programs for Improving Informatics Gifted Elementary Students' Creative Problem Solving Abilities (초등정보영재의 창의적 문제해결력 향상을 위한 앱 제작 교육프로그램 개발)

  • Hwang, SungJin;Choi, JeongWon;Lee, YoungJun
    • Proceedings of the Korean Society of Computer Information Conference
    • /
    • /
    • pp.165-168
    • /
    • 2014
  • 초등정보영재학생들에게 있어 스마트폰 앱의 개발은 기본적으로 자바와 같은 프로그래밍 언어 뿐만 아니라 기타 복잡한 프로그래밍 환경 등 프로그래밍에 대한 지식을 요구한다. 본 연구에서는 앱인벤터(AppInventor)를 활용하여 프로그래밍 언어를 습득하는데 걸리는 시간과 영재학생들의 인지부하를 최소화 하면서 초등정보영재학생들의 창의적 문제해결력을 향상시킬 수 있는 앱 개발 교육프로그램을 개발하고자 하였다.

  • PDF

The Impacts of Examples On the Learning Process of Programming Languages (예제가 프로그래밍 언어의 학습과정에 미치는 영향)

  • 김진수;김진우
    • Korean Journal of Cognitive Science
    • /
    • v.11 no.2
    • /
    • pp.19-35
    • /
    • 2000
  • Learning by examples has proven to be an efficient method in mastering various subjects including programming languages. This study hypothesizes that the number of examples and the type of examples are two significant dimensions that influence the performance of learning programming languages by examples. A set of experiments was conducted to investigate the impacts of the two dimensions in the domain of JAVA programming. The results showed that providing two examples is more effective than providing only one example even though significantly more explanations are attached to the single example. Among the 'two-example' groups, the group that was given functionally similar examples performed better than those with functionally dissimilar examples. Explanations for these results are provided in this paper based on the behavioral patterns of individual subjects in terms of time and frequency. This paper concludes with the implications of the study results for the development of effective tutoring systems for programming languages.

  • PDF

Compiling Lazy Functional Programs to Java on the basis of Spineless Taxless G-Machine with Eval-Apply Model (Eval-Apply 모델의 STGM에 기반하여 지연 계산 함수형 프로그램을 자바로 컴파일하는 기법)

  • Nam, Byeong-Gyu;Choi, Kwang-Hoon;Han, Tai-Sook
    • Journal of KIISE:Software and Applications
    • /
    • v.29 no.5
    • /
    • pp.326-335
    • /
    • 2002
  • Recently there have been a number of researches to provide code mobility to lazy functional language (LFL) programs by translating LFL programs to Java programs. These approaches are basically baled on architectural similarities between abstract machines of LFLs and Java. The abstract machines of LFLs and Java programming language, Spineless Tagless G-Machine(STGM) and Java Virtual Machine(JVM) respectively, share important common features such as built- in garbage collector and stack machine architecture. Thus, we can provide code mobility to LFLs by translating LFLs to Java utilizing these common features. In this paper, we propose a new translation scheme which fully utilizes architectural common features between STGM and JVM. By redefining STGM as an eval-apply evaluation model, we have defined a new translation scheme which utilizes Java Virtual Machine Stack for function evaluation and totally eliminates stack simulation which causes array manipulation overhead in Java. Benchmark program translated to Java programs by our translation scheme run faster on JDK 1.3 than those translated by the previous schemes.

Development and Application of Teaching and Learning Method for improvement of Programming Ability of Elementary School Students (초등학생들의 프로그래밍 능력 향상을 위한 교수학습 방법 개발 및 적용)

  • Kim, Yong-Sun;Yu, Heon-Chang
    • Proceedings of The KACE
    • /
    • /
    • pp.53-56
    • /
    • 2018
  • 4차 산업혁명 시대를 맞이하여 창의적인 프로그래밍 학습을 위한 교육활동이 중요해지고 있다. 프로그래밍 교수학습 방법에 대한 많은 연구들 중에서 특히 알고리즘과 프로그래밍 교육은 초보 학습자들이 프로그래밍 활동을 효과적으로 하기 위한 중요한 교육이 될 수 있다. 이에 본 연구는 언플러그드 활동, 스크래치와 자바스크립트 프로그래밍 활동을 통한 수업을 진행하고, 프로그램 인식과 수업만족도를 분석하였다. 연구 결과, 프로그래밍 활동에 대한 흥미와 문제해결에 대한 인식이 모두 높았고, 프로그래밍 활동의 두려움을 극복하는 모습을 확인할 수 있었다. 본 연구는 초보 학습자를 위한 프로그래밍 활동에서 알고리즘을 작성하고 프로그래밍 언어로 구현하는데 도움을 주는 교수학습 방법을 제시했다는데 의의가 있다.

  • PDF

Design of an Algorithmic Debugging Technique for Java Language (자바 언어를 위한 알고리즈믹 디버깅 기술의 설계)

  • Kouh, Hoon-Joon;Yoo, Weon-Hee
    • The KIPS Transactions:PartA
    • /
    • v.11A no.1
    • /
    • pp.97-108
    • /
    • 2004
  • This paper proposes to use an algorithmic debugging technique for locating logical errors in Java programs. The algorithmic debugging is a semi-automated debugging technique that builds an execution tree from a source program and locates logical errors, if any, included in the program from the execution tree with top-down method. So, it is very important to build a suitable execution tree from the various programming languages. In this paper we propose the method for building an execution tree iron Java programs and walk through an example. This approach could reduce the number of interactions between a user and a debugging system than the traditional step-wise debugging technique.

A Java Debugger for Replaying Parallel Programs on a Distributed Environment (분산환경에서 병렬프로그램 재실행을 위한 자바 디버거)

  • 최동순;김남훈;김명호
    • Proceedings of the Korean Information Science Society Conference
    • /
    • /
    • pp.657-659
    • /
    • 2000
  • 네트워크 처리속도의 증가로 네트워크 컴퓨팅 환경에서의 작업이 늘고 있다. 플랫폼 독립성이라는 특성을 내세운 자바는 일반적인 이 기종간의 네트워크에서의 프로그래밍 언어로 많이 이용되고 있다. 그리고 이러한 네트워크 컴퓨팅 환경에서 병렬 프로그램 디버깅의 어려움으로 인해 자바 병렬 프로그램을 위한 디버거의 필요성이 요구되고 있다. 기존의 디버거들은 이런 병렬 환경에서의 디버깅을 각 프로세서에 하나의 순차디버거를 붙인 디버깅 환경을 제공한다. 그러나 병렬 프로그램은 순차프로그램과 다른 재실행시의 비결정적인 특성을 가지고 있음으로 일반적인 순차 디버거를 이용한 디버깅은 의미가 없다. 본 논문에서는 자바로 구현된 네트워크 컴퓨터(JaNeC)에서 병렬프로그램을 디버기하기 위하여 재실행 시 실행 순서를 보장하는 자바 디버거를 소개한다.

  • PDF

An Evaluation of the Proguard, Obfuscation Tool for Android (안드로이드를 위한 난독화 도구 프로가드(Proguard) 성능 평가)

  • Park, Heewan;Park, Heekwang;Ko, Kwangman;Choi, Kwanghoon;Youn, Jonghee
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • /
    • pp.730-733
    • /
    • 2012
  • 소프트웨어는 대부분 바이너리 형태로 배포되기 때문에 역공학 분석이 쉽지 않다. 그러나 안드로이드는 자바를 기반으로 한다. 즉, 자바 언어로 프로그래밍하고 생성된 클래스 파일을 dx라는 도구를 사용하여 안드로이드용 달빅(Dalvik) 코드로 변환한다. 따라서 안드로이드 역시 자바의 취약점을 가지고 있고, 자바용으로 개발된 역공학 도구에 의해서 쉽게 분석될 수 있다. 한편으로 자바 프로그램의 저작권을 보호하고 핵심 알고리즘이 노출되지 않도록 다양한 난독화 도구들이 개발되었다. 그 중에서 안드로이드 SDK에 포함되어 함께 배포되고 있기 때문에 널리 사용되고 있는 프로가드(Proguard)에 대해서 대표적인 기능 및 사용법, 프로가드로 난독화된 코드가 원본과 비교하여 어떻게 변경되었는지 평가한다. 그리고 프로가드가 가지고 있는 한계를 알아보고, 이것을 극복할 수 있는 방법을 모색한다.

  • PDF