• Title/Summary/Keyword: functional languages

Search Result 62, Processing Time 0.02 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

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.

Clinical Comparative Analysis of Characteristics of Computer Programming Languages and their Development Environments for Basic Programming Education (기초적인 프로그래밍 교육을 위한 컴퓨터 언어의 특성 및 개발 환경의 임상적 비교 분석)

  • Kang, Dae-Ki
    • Journal of Engineering Education Research
    • /
    • v.15 no.3
    • /
    • pp.66-71
    • /
    • 2012
  • In this paper, we try to explore basic factors that defines easy-to-learn programming language and easy-to-learn development environments for novice students who have not been exposed to computer programming language education. For these purpose, we investigate and analyze computer programming languages that are widely used in industrial environments, and present the summary and analyzed results. From the experimental results, most novice programmers understand computer programming languages in terms of procedural programming languages rather than in terms of functional programming languages or object oriented programming languages. Furthermore, we have found that, for effective education of basic level programming languages, factors of development environments are much more important than factors of programming paradigms that the computer programming languages are based on.

A design of the imperative functional language with state (상태를 갖는 명령형 함수언어의 설계)

  • 주형석
    • Journal of the Korea Computer Industry Society
    • /
    • v.2 no.10
    • /
    • pp.1261-1268
    • /
    • 2001
  • Despite of various useful features, functional languages do not provide an efficient way of representing states. To improve expressiveness of functional language, it is required a method representing explicit state without violating of functional semantic properties. In this paper, imperative functional language, $\lambda$st-calculus is designed to represent states without compromising the properties of pure functional languages. And we construct an algorithm to reduce proposed imperative functional language. $\lambda$st-calculus model which is an extension of the $\lambda$-calculus model with explicit state constructor without violating their semantic properties. it improves expressiveness of syntax through a concept of state composition and simplified reduction rules.

  • PDF

Unfolding Nested Loops of Functional Languages for Multithreaded Architectures (다중스레드 구조를 위한 함수형 언어의 중첩루프 펼침)

  • 하상호
    • Journal of KIISE:Software and Applications
    • /
    • v.29 no.11
    • /
    • pp.826-836
    • /
    • 2002
  • We need an enormous amount of memories for name spaces as well as additional processors if we are to effectively exploit a massively parallelism in nested loops of functional languages such as Id. If there is no sufficient amount of memories enough to exploit that parallelism, the execution of programs can be aborted during the unfolding of loops. Additionally, if loops are overunfolded, compared with the number of processors available, the system performance can be degraded severely due to the overhead of loop unfolding. This paper suggests and analyzes an algorithm which can be used to effectively unfold nested loops of functional languages on multithreaded architectures. This algorithm has a feature to unfold a given nested loop safely and near optimally, considering the system resources of processors and memories available when the loop is to be unfolded.

Linguistic design of a bidirectional Korean-English machine translation system based on Lexical-Functional Grammar (어휘기능문법(Lexical-Functional Grammar)에 근거한 한-영 양방향 기계 번역기의 언어학적 구성)

  • Kim, Jeong-Ryeol
    • Language and Information
    • /
    • v.3 no.1
    • /
    • pp.65-82
    • /
    • 1999
  • The interests in Machine Translation(MT) have gotten revitalized lately with the rapid expansion of internet users. MT technology has gone through several different stages of development, but the longest surviving methods usually maintains the following characteristics: the expand ability and flexibility based on proved linguistic formalism, the transfer method of translation, the continued efforts of systematic updates being made into the system. This paper introduces one such system, L&H Korean-English bidirectional MT system. This system uses Lexical-Functional Grammar as its linguistic framework. It also adopts the transfer method of MT and has been around on the market for over 10 years for other language pairs. Currently, the system covers over 10 different languages including Chinese, Japanese and Arabic, in addition to European languages. This paper will review the system in its core and discuss related tools and resources be ing used to enhance the quality of translation.

  • 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.

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

  • Kim, Jin-Su
    • The Journal of Natural Sciences
    • /
    • v.5 no.2
    • /
    • pp.39-43
    • /
    • 1992
  • Detection of parallelism by a compiler is very desirable from a user's point of view. However, even the most sophisticated techniques to detect parallelism trip on trivial impediments, such as conditionals, function calls, and input/output statements, fail to detect most of the parallelism present in a program. Some parallelizing compilers provide feedback to the user when they have difficulty in deciding about parallel execution. Under these circumstances, a programmer has to restructure the source code to aid the detection of parallelism. But, functional and declarative languages can be said to offer many advantages in this context. Functional programs are easier to reason about because their output is determinate, that is, independent of the order of evaluation. However, functional languages traditionally have lacked good facilities for manipulating arrays and matrices. In this paper, a declarative language called Id has been proposed as a solution to some of these problems.

  • PDF

A Survey of Automatic Code Generation from Natural Language

  • Shin, Jiho;Nam, Jaechang
    • Journal of Information Processing Systems
    • /
    • v.17 no.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.

Implementation of a Verification Environment using Layered Testbench (계층화된 테스트벤치를 이용한 검증 환경 구현)

  • Oh, Young-Jin;Song, Gi-Yong
    • Journal of the Institute of Convergence Signal Processing
    • /
    • v.12 no.2
    • /
    • pp.145-149
    • /
    • 2011
  • Recently, as the design of a system gets larger and more complex, functional verification method based on system-level becomes more important. The verification of a functional block mainly uses BFM(bus functional model). The larger the burden on functional verification is, the more the importance of configuring a proper verification environment increases rapidly. SystemVerilog unifies hardware design languages and verification languages in the form of extensions to the Veri log HDL. The processing of design description, function simulation and verification using same language has many advantages in system development. In this paper, we design DUT that is composed of AMBA bus and function blocks using SystemVerilog and verify the function of DUT in verification environment using layered testbench. Adaptive FIR filter and Booth's multiplier are chosen as function blocks. We confirm that verification environment can be reused through a minor adaptation of interface to verify functions of other DUT.