• 제목/요약/키워드: functional programming language

검색결과 40건 처리시간 0.025초

Parallel Machine에 있어서의 Functional, Declarative 언어의 Algorithm (Algorithm for Functional and Declarative Language in Parallel Machine)

  • 김진수
    • 자연과학논문집
    • /
    • 제5권2호
    • /
    • pp.39-43
    • /
    • 1992
  • 사용자의 관점에서 볼때는 compiler가 parallelism을 발견할 수 있게 하는것이 매우 요구되지만, 아무리 잘 만들어진 compiler 라 할지라도 conditional, functional 또는 I/O statement 등 프로그램내에 존재하는 많은 parallelism을 인식 하기가 결코 쉬운 일이 아니다. 경우에 따라서는 compiler의 parallelism 결정이 곤란할경우 사용자에게 feedback 시키는 경우가 종종 있다. 이런 입장에서 프로그래머는 parallelism을 바로 전달하기 위해서 프로그램의 일부를 재구성 시킬 필요가 자주 발생한다. 그러한 관점에서 Functional, Declarative 언어의 잇점이 있다고 할 수 있고, 그러기 위해서는 paralled machine에 적합한 Algorithm 이 필요하다. 그러나, 이미 사용중인 Algorithm이 Parallel Machine에 부적절 하다는 것을 의미 하는것은 아니다. 본 연구에서는, Fortran을 이용하여 Parallel Algorithm을 구현 시키기위한 Declarative 언어에 있어서 Array 및 Matrix 를 다루기위한 Abstraction 방법을 제시 하고자 한다.

  • PDF

리눅스 기반 프로그래밍 언어의 온라인 학습 시스템 구성에 관한 연구 (A study on the On-line Teaching system for Linux-based Programming Language)

  • 전호익;이현창
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제17권1호
    • /
    • pp.67-73
    • /
    • 2021
  • 본 논문에서는 리눅스 기반 프로그래밍 언어를 온라인으로 실습할 수 있는 시스템의 구성 방법을 제시하였다. 제시한 시스템은 리눅스 운영체제의 가장 큰 특징인 웹-서버 기능을 활용하며, 방화벽이나 기타 보안적 제약을 받지 않으면서 telnet과 FTP 기능을 모사하여 실제 리눅스 콘솔과 유사한 실습이 가능하다. 이를 위해 웹 상에서 프로그래밍 도구가 가져야 할 기능적 요소들을 분석하고 이를 구현하기 위한 알고리즘을 정립하였으며, 특히 사용자의 실수에 의한 오류 메시지 등이 실재 telnet 화면과 동일한 형태로 나타날 수 있는 방법을 구현하였다. 구현된 학습 시스템을 학생들을 대상으로 수업에 활용한 결과 온라인으로 리눅스 프로그래밍 언어의 실습이 가능함은 물론 교수자가 학습자들의 모든 사항들을 직접 점검하고 지도할 수 있어 학습자의 만족도가 오프라인 수업 때와 유사한 결과를 확인하였다.

상태를 갖는 함수형 프로그래밍 언어의 수행모델 (Exeution Model for Functional Programming Language with States)

  • 주형석;김홍읍;유원희
    • 한국정보처리학회논문지
    • /
    • 제4권3호
    • /
    • pp.846-858
    • /
    • 1997
  • 순수 함수형 프라그래밍 언어는 명확한 어의와 많은 특성에도 불구하고 상태의 표현이 어렵다는 문제점을 가지고 있다 이와 같은 문제로 인힝순수 함수형 언어에 상태를 표현 하기 위한 많은 연구가 진행되었으나 형시스템이나 감축규칙이 복잡하기 때문에 구현이 어렵다는 문제점이 발생된다. 따라서 효율적인 구현기 위해 감축규칙을 단순화시키고 상태를 효율적으로 관리할 수 있는 방안이 요구 된다. 본 논문에서는 순수 함수형 언어 의 성질을 침해함이 없이 상태를 표현할 수 있으며 감축규칙을 단순화 시킨 함수형 언어의 수행모델st-계산을 제안하고, 제안된 모델이 church-roser 정리를 만족함을 증명 하였다. 제안된 방법을 통해 구문구조의 표현력을 높일 수 있었으며, 감축규칙을 단순화 함으로써 구현이 용이할 것으로 기대된다.

  • PDF

Parallelization of a Purely Functional Bisimulation Algorithm

  • Ahn, Ki Yung
    • 한국컴퓨터정보학회논문지
    • /
    • 제26권1호
    • /
    • pp.11-17
    • /
    • 2021
  • 본 논문에서는 순수 함수형 언어로 작성된 쌍방시뮬레이션 알고리듬의 성능을 멀티코어 프로세서 컴퓨터에서 병렬화로 향상시키는 방법을 연구한다. 이 병렬화에 있어 핵심 아이디어는 순수 함수형 프로그램의 참조 투명성을 십분 활용하면 병렬화가 전혀 고려되지 않고 작성된 초기 구현으로부터 최소한의 수정만으로 성능 개선 효과를 기대할 수 있다는 것이다. 초기 구현과 병렬화 구현 둘 다 순수 함수형 언어인 하스켈로 작성되었다. 초기 구현을 병렬화할 때 변화는 아주 적어서 병렬화된 구현에서도 초기 구현의 프로그램 구조가 거의 그대로 유지되었다. 벤치마크를 통해 제시된 간단한 병렬화만으로도 초기 구현과 비교해 두 배 이상의 성능 개선을 확인했다. 또한, 병렬화와는 별개의 최적화 기법인 메모이제이션이 적용된 버전의 쌍방시뮬레이션 구현에도 같은 방식의 병렬화를 적용함으로써 마찬가지로 성능을 개선할 수 있음을 확인하였다.

흐름 그래프 형태를 이용한 함수형 프로그램 유사성 비고 (A Program Similarity Check by Flow Graphs of Functional Programs)

  • 서선애;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제32권4호
    • /
    • pp.290-299
    • /
    • 2005
  • 컴퓨터와 소프트웨어의 사용이 증가하면서, 프로그램 소스의 도용(표절)이 사회적인 문제로 부각되고 있다. 이런 문제를 해결하고자 프로그램의 문법 구조를 비교하여 표절을 찾아내는 방법론이 제안되었지만, 간단한 프로그램 수정에도 표절을 찾아내지 못하는 한계를 가지고 있다 이 연구에서는, 문법 구조적인 정보 뿐 아니라, 프로그램식 간의 수행시 의존 관계를 드러내는 그래프를 이용한 프로그램 표절 감지 시스템을 제안한다. 이 방법론은 문법 정보 뿐 아니라, 수행시 의존 관계까지 비교 대상에 을림으로써, 수행시 의콘 관계를 변화시키지 못하는 프로그램 수정에 대해서도 프로그램 표절을 판별할 수 있다. 또한, 이 연구에서는 표절 프로그램이란 무엇인가를 엄밀하게 정의하고 이 표절 프로그램의 정의와 연구에서 제안된 표:늰 감별 그래프와의 관계를 보였다. 즉, 두 프로그램이 표절이라는 것은 표절 감별 그래프가 일치한다는 긴과 필요 충분 관계가 있음을 증명하였다. 또한 제안된 표절 감별 방법론을 실제적인 프로그래밍 언어인 IML 에 대해서 구현하였다. 구현된 도구를 통해서 실제 표절된 프로그램들을 감별한 결과, 기존의 방법에서 찾기 어려운 프로그램 표절을 제안된 방법론이 다룰 수 있음을 확인하였다.

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

  • 남병규;최광훈;한태숙
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제29권5호
    • /
    • pp.326-335
    • /
    • 2002
  • 최근에 지연 계산 함수형 언어를 자바 프로그램으로 변환함으로써 지연 계산 함수형 언어 프로그램에 대해 코드 이동성을 제공하려는 연구가 있었다. 이러한 연구들은 자바와 지연 계산형 함수형 언어의 추상 기계가 가지는 구조적 유사성에 바탕을 두고 있다. 지연 계산 함수형 언어에 대한 추상 기계인 STGM(Spineless Tagless G-machine)과 자바 언어에 대한 추상 기계인 JVM(Java Virtual Machine)은 기억장소 재활용 체계와 스택 기계 구조를 가진다는 점에서 공통된 특징을 가지고 있다. 그러나 현재가지의 지연 계산 함수형 언어로부터 자바로의 변환 구조는 이와 같은 추상 기계 구조상의 공통점을 충분히 이용하지 못하였다. 본 논문에서는 STGM의 계산 모델을 eval-apply 모델로 새로이 정의함으로써 STGM과 JVM의 공통점을 충분히 이용하는 새로운 변환 구도를 제안한다. 새로이 제안된 변환 구도에서는 자바 스택(Java Virtual Machine Stack)을 사용하여 함수 계산을 수행하도록 함으로써 스택 시뮬레이션으로 인해 나타나는 자바에서의 배열 접근 부담을 제거하였다. 본 논문의 변환 구도에 의해 자바로 변환된 벤치마크 프로그램들은 기존의 변환 구도에 의해 변환된 경우보다 JDK 1.3에서 빠르게 동작한다.

Development of Programming-based TPACK Education Program through Design-based Research

  • Kim, Seong-Won;Lee, Youngjun
    • 한국컴퓨터정보학회논문지
    • /
    • 제24권10호
    • /
    • pp.267-278
    • /
    • 2019
  • 교육에서 테크놀로지의 중요성이 증가함에 따라 수업에서 테크놀로지 활용을 촉진하기 위하여 TPACK 연구가 활발하게 진행되었다. 하지만 테크놀로지가 가진 기능적인 한계로 인하여 예비 교사는 수업에서 테크놀로지 활용에 어려움을 겪고 있었다. 따라서 본 연구에서는 기능적 한계가 존재하지 않는 프로그래밍 언어를 TPACK의 테크놀로지 도구로 도입하는 연구를 진행하였다. 연구 방법으로 설계 기반 연구를 활용하여, 교육 프로그램을 개발하고, 예비 교사를 대상으로 적용하고, 효과를 평가하는 연구를 반복하여 진행하였다. 1차 연구에서는 예비 교사가 프로그래밍 학습에 어려움을 겪었으며, 이를 해결하기 위하여 프로그래밍 기반 수업과 교육과정 분석을 교육프로그램에 보완하였다. 2차 연구에서는 교수-학습에서 프로그래밍의 활용에 어려움을 느껴서, 수업 설계 및 성찰을 보완하였다. 3차 연구에서는 프로그래밍 학습 및 활용을 보완하기 위하여 프로그래밍 개발 환경 탐색을 보완하였다.

패킷 프로세싱을 위한 새로운 명령어 셋에 관한 연구 (A Novel Instruction Set for Packet Processing of Network ASIP)

  • 정원영;이정희;이용석
    • 한국통신학회논문지
    • /
    • 제34권9B호
    • /
    • pp.939-946
    • /
    • 2009
  • 본 논문에선 기계 기술 언어(machine descriptions language)인 LISA(Language for Instruction Set Architecture)를 통하여 시뮬레이션 모델로 설계한 새로운 네트워크 ASIP(Application Specific Instruction-set Processor)을 제안한다. 제안한 네트워크 ASIP은 라우터(router)에서 패킷 프로세싱을 담당하는 전용엔진을 목적으로 설계되었다. 이를 위해 MIPS(Microprocessor without Interlock Pipeline Stages) 아키텍처를 기반으로 한 일반적인 ASIP에 패킷을 빠른 속도로 처리하기 위해 필요한 새로운 명령어 셋을 추가하였다. 새로 추가된 명령어 셋은 "classification" 명령어 그룹과 "modification" 명령어 그룹으로 나눌 수 있으며, 각 그룹은 실행 단계(execution stage)에 위치한 각각의 기능 유닛(function unit)에 의해서 처리된다. 그리고 각각의 기능 유닛은 Verilog HDL을 통해 면적과 속도 측면에서 최적화하였으며, 이를 합성하여 면적과 동작 지연시간을 비교하였다. 또한 CKF(Compiler Known Function)을 이용하여 C 언어 레벨의 매크로 함수에 할당하였으며, 어플리케이션 프로그램에 대한 실행 싸이클을 비교 분석하여 성능 향상을 확인하였다.

SystemC 구성요소를 이용한 SystemVerilog 기반 검증환경 (SystemVerilog-based Verification Environment using SystemC Constructs)

  • 오영진;송기용
    • 융합신호처리학회논문지
    • /
    • 제12권4호
    • /
    • pp.309-314
    • /
    • 2011
  • 시스템의 복잡도가 증가함에 따라 상위수준 추상화에 기반한 시스템수준 설계 및 하드웨어의 기능적 검증을 위한 방법론의 중요성이 부각되고 있으며, Verilog HDL(Hardware Description Language)에 하드웨어 검증기능이 추가된 SystemVerilog를 이용하는 시스템수준의 기능적 검증방법이 각광받고 있다. SystemVerilog는 Verilog HDL의 확장된 형태로 하드웨어 설계언어와 검증언어의 특징을 모두 포함하나, 다중상속을 허용하지 않는다. 본 논문에서는 SystemVerilog 기반의 검증환경과 다중상속을 허용하는 SystemC 의 구성요소를 SystemVerilog DPI(Direct Programming Interface) 및 ModelSim macro를 이용해 결합한 다중상속이 가능한 검증환경을 구성한다. 다중상속이 허용된 검증환경 시스템은 특정부분을 수정 후 재실행으로 DUT(Design Under Test)의 기능 검증을 쉽게 수행할 수 있으며, OOP(Object Oriented programming) 기법을 이용한 코드의 재사용성이 높아 또 다른 DUT의 동작 검증에 재사용할 수 있다.

멀티모드 단말기의 라디오 라이브러리를 위한 표준 기능 블록의 선정 및 구현 (Selection and implementation of Standard Functional Blocks for Radio Library in multi-mode mobile device)

  • 정일도;최승원
    • 디지털산업정보학회논문지
    • /
    • 제12권3호
    • /
    • pp.125-132
    • /
    • 2016
  • The European Telecommunication Standards Institute (ETSI) Technical Committee (TC) Reconfigurable Radio Systems (RRS) is standardizing the multi-mode Mobile Device (MD). The configuration of multi-mode MD is determined by the downloaded mobile communication standard software. In this paper, we introduce the Radio Library concept for multi-mode MD which is one of the key components of RRS standard. This paper also introduces the Standard Functional Block which is a part of Radio Library. A method for selecting efficiency SFBs for multi-mode MD is presented and a Radio Library is generated based on the selected SFBs. This paper also shows sample Standard Functional Block Set which included in Radio Library. In order to verify the compatibility of the generated Radio Library which was made by C language, we implement the LTE Rel-10 and Wi-Fi(802.11b) to show the efficiency of generating a mobile communication standard software based on the Radio Library. Then using the Prograph Visual Programming MartenTM 1.6.4, we compiled our LTE Rel-10 and Wi-Fi(802.11b) source code.