• Title/Summary/Keyword: 함수형 프로그래밍

Search Result 47, Processing Time 0.021 seconds

Functional Monadic Programming (함수형 모나드 프로그래밍)

  • 변석우
    • Journal of the Korea Institute of Information and Communication Engineering
    • /
    • v.5 no.1
    • /
    • pp.192-201
    • /
    • 2001
  • It has been a long standing problem in research of pure functional programming to program side-effect, input/output, exception handling, nondeterminism, and etc, preserving declarative property and lazy-evaluation of pure functional languages. Being introduced in 1989, Monadic approach has been suggested as a solution to this problem. In this paper, we introduce the principle of functional monadic programming and its various application techniques using the Pure functional language Haskell.

  • PDF

Feasibility Study Of Functional Programming In Scala Language By Implementing An Interpreter

  • Sugwoo, Byun
    • Journal of the Korea Society of Computer and Information
    • /
    • v.28 no.2
    • /
    • pp.111-119
    • /
    • 2023
  • In this paper, we investigate the feasibility of functional programming in the Scala language. The main issue is to what extent Scala is able to handle major properties of functional programming such as lambda expression, high-order functions, generic types, algebraic data types, and monads. For this purpose, we implement an interpreter of an imperative language. In this implementation, the same functional programming techniques are applied to both Haskell and Scala languages, and then these two versions of implementations are compared and analyzed. The abstract syntax tree of an imperative language is expressed as algebraic data types with generics and enum classes in Scala, and the state transition of imperative languages is implemented by using state monad. Extension and given, new features of Scala, are used as well.

Development of an Assembly Language Interpreter Using Monad (모나드를 이용한 어셈블리 언어 인터프리터 개발)

  • Byun, Sug-Woo
    • Journal of KIISE:Software and Applications
    • /
    • v.37 no.5
    • /
    • pp.403-410
    • /
    • 2010
  • Monad in Haskell allows one to do imperative-style programming as well as pure functional programming. In this work, we characterize monadic abstraction and its programming technique by restructuring an assembly language interpreter coded in pure functional style into the one by the monadic style. Monad programming consists of two phases; the State monad is applied to a stack and a symbol table, and then a State Monad Transformer integrating these two monads is constructed. As a result, we can see that the program code by monad programming is much clearer and more intuitive than one written in the pure functional style.

Technology Trends of Haskell Parallel Programming in the Manycore Era (매니코어 시대를 대비하는 Haskell 병렬 프로그래밍 동향)

  • Kim, J.M.;Byun, S.W.;Kim, K.H.;Jeong, J.H.;Koh, K.W.;Cha, S.J.;Jung, S.J.
    • Electronics and Telecommunications Trends
    • /
    • v.29 no.5
    • /
    • pp.167-175
    • /
    • 2014
  • 매니코어 구조의 고성능 컴퓨팅 시대가 시작되고 있다. 매니코어의 성능을 활용하기 위해서는 병렬 프로그래밍이 필수적인데, 이 방식은 기존 프로그래밍에 비해 훨씬 더 복잡하고 어렵다. 또한 컴퓨터의 성능이 높아짐에 따라 소프트웨어의 규모와 복잡도 또한 증가하게 되며, 소프트웨어를 에러 없이 안전하게 개발하는 것은 매우 어려운 문제가 되고 있다. 이 문제해결에 도움을 줄 수 있는 한 방법으로 기존의 명령형 프로그래밍 언어 대신 Haskell과 같은 순수 함수형 언어의 이용을 고려한다. Haskell은 지난 수십 년 동안 람다 계산법, 타입 이론, 의미론 등의 강력한 이론적 배경하에 최신 기술을 수용하면서 발전하고 있는 순수 함수형 언어이다. 함수의 순수성은 결정적(deterministic) 병렬 프로그래밍을 표현하는데 매우 유리하다. 최근 이와 관련된 매우 고무적인 연구결과가 발표되고 있으며 여러 응용프로그램들이 개발되고 있다. Haskell은 여러 강력한 이론 덕택으로 병렬 프로그래밍뿐만 아니라 소프트웨어의 생산성 및 안정성과 관련된 많은 문제에 도움을 줄 수 있는 다목적 언어로써 주목 받고 있다.

  • PDF

두리틀(Dolittle) 프로그래밍 활동을 통한 함수 개념 형성에 관한 사례 연구

  • Jo, Yeong-Ju;Kim, Gyeong-Mi;Hwang, U-Hyeong
    • Communications of Mathematical Education
    • /
    • v.19 no.2 s.22
    • /
    • pp.363-378
    • /
    • 2005
  • 본 연구는 객체지향형 교육용 프로그래밍 언어인 두리틀(Dolittlee)을 수학교수-학습에 활용하기 위한 연구의 일부이다. 본 논문에서는 세 명의 고등학교 1학년 학생을 대상으로 7차 교육과정상의 중등 함수단원을 중심으로 함수의 그래프에 대한 두리틀 프로그래밍 활동을 안내적 교수법으로 진행하고 그 결과를 분석하여, 두리틀 프로그래밍 활동이 함수의 개념 형성에 미치는 영향을 관찰하고 컴퓨터 친밀도와 수학적 성향이 프로그래밍 학습에 어떠한 영향을 주는지에 관하여 고찰하였다. 연구 결과, 두리틀을 이용한 함수의 그래프 그리기 활동은 학생들에게 함수의 기본 개념과 그래프의 성질을 이해하는데 효과적이었으며, 두리틀 프로그래밍 탐구 활동에 있어 학생들의 수학 성취도보다는 수학에 대한 긍정적인 성향과 컴퓨터와의 높은 친밀도가 긍정적인 영향을 미친다는 사실을 확인하였다.

  • PDF

Real-Time Functional Reactive Program Translator for Embedded Systems (임베디드 시스템을 위한 실시간 함수형 반응적 프로그램 변환기)

  • Lee, Dong-Ju;Woo, Gyun
    • The KIPS Transactions:PartA
    • /
    • v.13A no.6 s.103
    • /
    • pp.481-488
    • /
    • 2006
  • FRP(Functional Reactive Programming) is a kind of embedded language in Haskell, it declaratively program reactive system based on two essential high-order types named behavior and events. This Paper design and implementation RT-FRP(Real-time Functional Reactive Programming) translator for using FRP in embedded systems with many constraints. The RT-FRP translator generates a C Program from an RT-FRP program according to the operational semantics of the RT-FRP language. To show the effectiveness of the RT-FRP translator, we loaded and executed the test program generated by the translator onto a real embedded system, LEGO Mindstorm. According to the experimental result, the reactive system software can be programmed more concisely using RT-FRP than using an imperative counter part although the size of the binary code is rather increased.

Apply A Pure Functional Language for Game Programming (게임 프로그래밍을 위한 순수 함수형 언어의 활용)

  • Lee Dong-Ju;Byun Suk-Woo;Woo Gyun
    • Proceedings of the Korea Contents Association Conference
    • /
    • 2005.05a
    • /
    • pp.464-469
    • /
    • 2005
  • The imperative programming language like C language is Generally used when we develop the game program. But there is the need of much effort and time on low-level-details in order to express the game program that has complicated and varied motion. I will try to take measures to use the pure functional language, Haskell as the method of simplifying complex game program. The pure functional programming language like Haskell has excellence of technology and it has become specific in many domains. In this paper I'll discuss the difference between The two languages and merits and demerits in the game development aspect. Also discuss the possibility of putting Haskell to practical use in the future.

  • PDF

Simplifying Type-level Programming by Booleanizing Inductive Types (귀납적 자료형의 이진화를 이용한 타입 레벨 프로그래밍 간소화)

  • Cha, Ree-Seo;Choi, Jin-Young
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10b
    • /
    • pp.571-574
    • /
    • 2006
  • Dependent type은 유리수, 리스트 함수, 행렬 곱 등 여러 가지 타입들의 제약 사항들을 충실히 표현하는 데에 필수적이기 때문에 이를 지원하는 타입 시스템을 탑재한 언어를 새로 개발하거나 기존 언어의 다른 특성들을 활용하여 이를 모의(simulate)하려는 시도가 다각도로 진행되고있으며, Haskell 타입 레벨 프로그래밍도 이런 모의 기법 중 하나다. 기존 타입 레벨 프로그래밍은 변별력의 손실이 없는 대신 이로 인해 관련 함수들의 타입이 복잡해지거나 확정하기 어려워지는 경우가 많아서 잘못된 프로그램을 작성할 위험 부담이 커진다. 실제로 dependent type이 필요한 경우들 중에는 매우 간단한 변별력만을 요구하는 경우가 많으므로, 귀납적 자료형을 이진 추상화하여 일부 변별력을 포기하는 대신 상대적으로 간단하게 dependent type과 관련 함수들의 타입을 확정하는 간소화된 타입 레벨 프로그래밍 기법을 제안한다.

  • PDF

Term Rewriting Semantics of Lazy Functional Programming Languages (지연 함수형 프로그래밍 언어의 항 개서 의미)

  • Byun, Sug-Woo
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.35 no.3
    • /
    • pp.141-149
    • /
    • 2008
  • Most functional programming languages allows programmers to write ambiguous rules, under the strategy that pattern-matching will be performed in a direction of 'from top to bottom' way. While providing programmers with convenience and intuitive understanding of defining default rules, such ambiguous rules may make the semantics of functional languages unclear. More specifically, it may fail to apply the equational reasoning, one of most significant advantage of functional programming, and may cause to obscure finding a formal way of translating functional languages into the ${\lambda}$-calculus; as a result, we only get an ad hoc translation. In this paper, we associate with separability of term rewriting systems, holding purely-declarative property, pattern-matching semantics of lazy functional languages. Separability can serve a formalism for translating lazy functional languages into the ${\lambda}$-calculus.

객체지향형 교육용 프로그래밍 언어 '두리틀(Dolittle)'의 수학 교육-학습 활용 방안

  • Hwang, U-Hyeong;Kim, Gyeong-Mi
    • Communications of Mathematical Education
    • /
    • v.19 no.1 s.21
    • /
    • pp.215-240
    • /
    • 2005
  • 본 논문은 최근 일본에서 개발된 객체지향형 교육용 프로그래밍 언어(EPL: Educational Programming Language) '두리틀(Dolittle)'을 소개하고, 두리틀을 수학 교수-학습에 활용하기 위한 최초의 연구이다. 두리틀은 LOGO의 거북 그래픽스(Turtle Graphics)와 인크리멘탈(Incremental) 프로그래밍 방식, 즉각적인 피드백 등 많은 교육적 이점을 수용하고, 현대 프로그래밍의 고급 기능들을 프로토타입(Prototype) 방식을 통해 어린 학생들도 쉽게 이해할 수 있게 한 텍스트기반의 한글 교육용 프로그래밍 언어이다. 본 논문에서는 LOGO와 두리틀의 활용 비교를 통하여 두리틀을 소개하고, 두리틀을 이용한 기하와 함수의 교수-학습을 위하여 연구자가 고안한 기하판과 좌표판, 삼각함수판의 활용 방안을 제안하고, 그 교수-학습에서 발생하는 문제점을 해결하기 위한 몇 가지 아이디어를 제안하고자 한다.

  • PDF