• Title/Summary/Keyword: 함수형 언어

Search Result 88, Processing Time 0.022 seconds

Pattern Matching and Its Restrictions in Functional Languages (함수형 언어의 패턴 매칭 기능과 제약에 관한 연구)

  • Gwon, Gi-Hang;Ju, Ye-Chan;Sin, Hyeon-Sam
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.5
    • /
    • pp.1291-1295
    • /
    • 1999
  • Modern functional languages provide some forms of pattern matching capability in them. However, these forms are on an ad-hoc basis and vary from languages to languages, making the user hard to understand the feature. To overcome this problem, we present a systematic approach to adding pattern matching to functional language. We extend to the core functional language with pattern matching capability and illustrate several examples of the language. We also discuss how to extend the pattern matching capability to higher-order terms.

  • PDF

Domain Independent Script Language for Constructing Mixed-Initiative Conversational Agent (상호주도형 대화 에이전트 구현을 위한 도메인 독립적 스크립트 언어)

  • Lim, Sung-Soo;Cho, Sung-Bae
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10b
    • /
    • pp.269-273
    • /
    • 2006
  • 대화 에이전트의 역할은 사용자 입력으로부터 사용자의 의도를 분석하고 이에 따른 서비스를 제공하는 것이다. 하지만 사용자는 한 번에 서비스 제공에 필요한 모든 정보를 제공하지 않으므로 에이전트는 능동적으로 부가적인 정보를 추출할 수 있어야 한다. 따라서 자연스러운 대화를 진행하기 위해서 에이전트는 사용자주도형 대화와 시스템주도형 대화가 결합된 상호주도형 대화가 가능해야 한다. 본 논문에서는 상호주도형 대화를 제공할 수 있는 대화 에이전트의 스크립트(대화를 위한 데이터베이스) 언어를 제안한다. 제안한 방법은 대상 도메인에 맞춰서 대화 에이전트를 설계할 수 있도록, 도메인 관련 변수와 도메인 함수를 정의하여 사용할 수 있으며, 대화처리 기능으로, 사용자 의도 추론, 대화 흐름 관리, 사용자 입력 정보 추출 등의 기능을 지원한다. 제안한 방법의 가능성을 보이기 위해 일정관리 도메인에 제안하는 방법을 적용한다.

  • PDF

A Design and Implementation of Functional Array for Improvement of the Traversal Time (탐색시간의 개선을 위한 함수형 배열의 설계 및 구현)

  • Ju, Hyeong-Seok;Yu, Won-Hui
    • The Transactions of the Korea Information Processing Society
    • /
    • v.3 no.5
    • /
    • pp.1262-1272
    • /
    • 1996
  • Pure functional languages have the referential transparency feature sothat all objects cannot be updated destuctively. Once an aggregated data structure such as array is updated, both the original and newly updated array must be preserved to maintain reverential transparency. Thus, it is required to develop an efficient mechanism with which can reduce the maintenance cost while maintaining referential transparency for whole data. This study is to suggest a functional array to solve the problem, and them test it. For that, the proposed mechanism was implemented on a combinator graph reduction machine. The result shows that proposed mechanism reduces traversal time for array operations. Also, updating all versions and accessing the recent version are achieved in constant time without reconstruction of updated data in execution time.

  • PDF

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

  • Seo Sunae;Han Taisook
    • Journal of KIISE:Software and Applications
    • /
    • v.32 no.4
    • /
    • pp.290-299
    • /
    • 2005
  • Stealing the source code of a program is a serious problem not only in a moral sense but also in a legal sense. However, it is not clear whether the code of a program is copied from another or not. There was a program similarity checker detecting code-copy by comparing the syntax trees of programs. However this method has a limitation that it cannot detect the code-copy attacks when the attacker modifies the syntax of the program on purpose. We propose a program similarity check by program control graph, which reveals not only syntax information but also control dependancy. Our method can detect the code-copy attacks that do not change control dependancy Moreover, we define what code-copy means and establish the connection between code-copy and similarity of program control graph: we prove that two programs are related by copy congruence if and only if the program control graphs of these programs are equivalent. We implemented our method on a functional programming language, nML. The experimental results show us that the suggested method can detect code similarity that is not detected by the existing method.

Index Transitivity and Transformation of Separable Systems (분리가능 시스템의 지수 추이성과 변환)

  • 변석우
    • Journal of KIISE:Software and Applications
    • /
    • v.31 no.5
    • /
    • pp.658-666
    • /
    • 2004
  • Separable systems are defined in term rewriting systems, respecting the notion of separability in the λ-calculus. In this research, we generalize separable systems of term rewriting systems, which was studied in restrictive systems such as constructive systems. We also associate separability with index-transitivity and with forward branching Separability is identified with forward branching, and strong sequentiality with index-transitivity satisfies separability. These are such good properties that enable us to describe the procedure of pattern-matching as an index tree, which is a sort of automata, and to transform separable systems into a constructor system with a simple pattern. Separable systems, in particular, can be translated into the λ-calculus. This research can serve a theoretical basis which allows functional languages to be explained by the λ-calculus, since functional languages such as ML and Haskell belong to a subclass of separable systems.

FuzzyQ-Learning to Process the Vague Goals of Intelligent Agent (지능형 에이전트의 모호한 목적을 처리하기 위한 FuzzyQ-Learning)

  • 서호섭;윤소정;오경환
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2000.04b
    • /
    • pp.271-273
    • /
    • 2000
  • 일반적으로, 지능형 에이전트는 사용자의 목적과 주위 환경으로부터 최적의 행동을 스스로 찾아낼 수 있어야 한다. 만약 에이전트의 목적이나 주위 환경이 불확실성을 포함하는 경우, 에이전트는 적절한 행동을 선택하기 어렵다. 그러나, 사용자의 목적이 인간 지식의 불확실성을 포함하는 언어값으로 표현되었을 경우, 이를 처리하려는 연구는 없었다. 본 논문에서는 모호한 사용자의 의도를 퍼지 목적으로 나타내고, 에이전트가 인지하는 불확실한 환경을 퍼지 상태로 표현하는 방법을 제안한다. 또, 퍼지 목적과 상태를 이용하여 확장한 펴지 강화 함수와를 이용하여, 기존 강화 학습 알고리즘 중 하나인 Q-Learning을 FuzzyQ-Learning으로 확장하고, 이에 대한 타당성을 검증한다.

  • PDF

BCNF 릴레이션 생성에 관한 연구

  • Kim, Uk;Han, Sang-Man;Song, Yeong-Gi
    • ETRI Journal
    • /
    • v.9 no.3
    • /
    • pp.43-54
    • /
    • 1987
  • 주어진 릴레이션 스킴(relation scheme)을 이에 관련된 함수적 종속(functional dependency)들을 가지고 분해하여 Boyce-Codd 정규형(Boyce-Codd normal form)에 속하는 릴레이션 스키머(schema)로 정규화(normalization)시키는 기존의 분해 알고리즘(decomposition algorithm)은 구현해서 사용하기에 적합하지 못하다. 본 고에서는 기존의 알고리즘 구현시 발생하는 문제점을 분석하고 이런 문제점을 해결하는 방법을 제시하며, 이를 토대로 Boyce-Codd 정규형 릴레이션 스킴을 생성하는 새로운 알고리즘을 제시하고, 이 알고리즘을 UNIX 환경하에 C 언어로 구현한 후 임의의 자료를 수행하여 얻어진 릴레이션 스키머와 기존의 알고리즘에 의해 얻어진 릴레이션 스키머를 비교분석하였다.

  • PDF

A Java Implementation of the Generalization of Standard Manabe Form using the Runge Kutta and Genetic Algorithms and the Controller Design Methods (런지-커타 기법과 유전자 알고리즘을 이용한 Manabe형의 일반화와 제어기 설계에 관한 자바 구현)

  • 강환수;강환일;이충기
    • Proceedings of the Korean Institute of Intelligent Systems Conference
    • /
    • 2002.12a
    • /
    • pp.106-111
    • /
    • 2002
  • 진화 알고리즘은 생물의 유전적 진화 과정을 이용한 새로운 문제 해결의 방안으로 결정론적 방법으로 해결하지 못한 난제에 적합한 알고리즘으로 알려져 있다. 본 논문에서는 진화 알고리즘의 연구를 기반으로 전달함수 출력 파형 검출을 위한 기법에서 이용되고 있는 런지-커타(Runge-Kutta) 방법에서의 상미분 방정식의 해를 구하는 기법 연구와 유전 알고리즘을 이용하여 Manabe 표준형의 일반화를 이용-i:l여 플랜트의 성능을 충족시키는 제어기를 설계할 수 있는 알고리즘을 구현한다. 본 논문에서의 프로그램 구현은 자바 언어를 이용하며, 자바 언어를 적용한 구현 방법과 유전 알고리즘의 효율적 기법을 제시한다.

A Formal Specification Translation of the Class Diagram (클래스 다이아그램의 정형 명세 변환)

  • Kim, Jin-Soo;Jeong, Je-Hong;Kim, Byung-Soo
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.04b
    • /
    • pp.1009-1012
    • /
    • 2001
  • 일반적으로 크고 복잡한 소프트웨어 시스템은 커다란 다이아그램의 집합으로 구성되지만 이들 각각의 다이아그램들이 일관성이 있고 완전한가를 알기는 매우 어렵다. 이러한 문제를 해결하기 위하여 [1]에서는 최근 객체지향 개발에서 많이 사용되고 있는 UML 다이아그램들에 대한 일관성과 완전성을 검사하기 위하여 각 다이아그램들을 ER 모델로 표현하고, 각 다이아그램에 대한 공통된 표현으로 통합된 ER 다이아그램을 제공하였다. 이렇게 통합된 다이아그램은 일편의 집합과 함수들을 사용하여 정형적으로 명세되며, 이러한 정형 명세를 기반으로하여 일관성과 완전성 검사를 수행하기 위한 규칙을 제공하였다. 그러나 [1]에서 정형적으로 명세된 집합과 함수를 실제로 사용하기 위해서는 우리가 알고있는 정형 명세 언어로 변환할 필요성이 있다. 따라서 본 논문에서는 이러한 집합을 추상자료형으로 명세하여 정의하고, 추상자료형으로 표현된 명세를 우리가 잘 알고 있는 Z 명세로 변환하여 검증 도구를 설계하는 기초로 사용하고자 한다. Z 명세는 쉽게 실행가능한 형태로 변환되어 검증 시스템을 구축할 수 있게 된다.

  • PDF

Function Outlining for Real-time Sensor Operating Systems (실시간 센서 운영체제를 위한 함수 아웃라이닝 기법)

  • Yi, Sang-Ho;Min, Hong;Kim, Bong-Jae;Kim, Surk-Hyun;Cho, Yoo-Kun;Hong, Ji-Man
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2008.06a
    • /
    • pp.313-314
    • /
    • 2008
  • 컴퓨터 시스템의 등장 이래로, 함수 인라이닝 기법은 함수 지향형 프로그래밍 언어에서 코드 크기의 증가와 함께 실행 시간을 감소시키는 하나의 기법으로 사용되어왔다. 이에 반하여, 함수 아웃라이닝 기법은 실행 시간을 증가시키지만 코드 크기의 감소를 가져온다. 기존 범용 컴퓨터 시스템은 코드를 저장하는 저장장치의 크기에 큰 제약이 없었기 때문에, 함수 아웃라이닝 기법은 그리 널리 쓰이지 않았다. 그러나 최근의 무선 센서 네트워크 분야의 연구를 통하여 범용 컴퓨터 시스템에서는 찾아보기 어려웠던 코드 영역의 자원 제약이 심화되었고, 이에 따라 함수 아웃라이닝 기법이 보다 의미를 갖게 되었다. 특히, 실시간 응답을 요구받는 센서 운영체제는 코드 공간의 제약 하에서 실시간 작업 처리를 수행할 수 있어야 한다. 본 논문에서는, 함수 아웃라이닝 기법을 통하여 실시간 센서 운영체제의 여유 시간(laxity time)을 활용하면서 코드의 크기를 감소시키는 방법을 제안한다. 이를 통하여, 코드 공간의 제약 상황을 보다 완화할 수 있다.

  • PDF