• Title/Summary/Keyword: Programming Languages

Search Result 329, Processing Time 0.021 seconds

Solving Inheritance Anomaly using Inheritance Interface Mechanism in Concurrent Object-Oriented Programming Languages (병행 객체지향 언어에서 상속 인터페이스 메커니즘을 이용한 상속 변칙의 해결)

  • Kim, Kuk-Se;Lee, Gwang;Bang, Keug-in;Park, Young-Ok;Lee, Joon
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • 1999.05a
    • /
    • pp.230-234
    • /
    • 1999
  • Inheritance and concurrency are the primary feature of object oriented languages, and are especially important for code re-use. They provide maximum computational power and modeling power through concurrency of objects. But, concurrent objects and inheritance have conflicting characteristics, thereby simultaneously use of them causes the problem, so failed inheritance anomaly, which requires code redefinition of inherited methods to maintain integrity of objects. In this paper, to solve the inheritance anomaly problems we introduce concept of state abstraction, in which infernal states of encapsulated objects are made available from a part of object's external interface. And we design inheritance interface mechanisms which methods are inherited efficiently. In our scheme, we can solve the typical inheritance anomaly problems.

  • PDF

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 Device of Parallelism Control in POSIX Based Parallelization of Recursive Algorithms (POSIX스레드에 의한 재귀적 알고리즘의 병렬화에서 병렬성 제어 방안)

  • Lee, Hyung-Bong;Baek, Chung-Ho
    • The KIPS Transactions:PartA
    • /
    • v.9A no.2
    • /
    • pp.249-258
    • /
    • 2002
  • One of the jai or purposes of multiprocessor system is to get a high efficiency in performance improvement. But in most cases, it is unavoidable to use some special programming languages or tools for full use of multiprocessor system. In general, loop and recursive call statements of algorithms are considered as typical parts for parallelization. Especially, recursive call statements are easy to parallelize conceptually without support of any special languages or tools. But it is difficult to control the degree of parallelism caused by high depth of recursive call leading to execution crash. This paper proposes a device to control Parallelism in the process of POSIX thread bated parallelization of recursive algorithms. For this, we define the concept of thread and process in UNIX system, and analyze the results of experimental application of the device to quick sorting algorithm.

Multiple Perspective Business System Modeling Using Unified Modeling Language (Unified Modeling Language를 활용한 다관점 업무 시스템 모형화)

  • Kim, Jong-U;Kim, Jin-Sam;Jo, Jin-Hui;Jeon, Jin-Ok
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.9
    • /
    • pp.2373-2383
    • /
    • 1999
  • Recently, due to the popularity of object-oriented programming languages, object-oriented modeling and development methodologies become widely applied to information system development. When object-oriented methodology is adopted, using object-oriented modeling languages for business analysis and redesign has the advantages such that business modeling results can be easily understood and referred by information system developers. In this paper, UML-B, Unified Modeling Language extension for Business modeling is proposed, which uses UML notation for modeling organization structure, actors, use cases, business processes, and entities in business systems. It also utilizes extension mechanisms of UML to facilitate business modeling activities, and supports business process reengineering with object-oriented modeling.

  • PDF

Limitations and Future Work Suggetion on Safe Interaction Model between Rust and C/C++ (Rust와 C/C++간 안전한 상호작용에 관한 연구의 맹점과 개선 모델 연구)

  • Taehyun Noh;Hojoon Lee
    • Journal of the Korea Institute of Information Security & Cryptology
    • /
    • v.33 no.2
    • /
    • pp.345-351
    • /
    • 2023
  • As software development progresses and programs become increasingly complex, the cost of reducing and managing software vulnerabilities has also increased. To address this issue, the Rust programming language, which guarantees Memory Safety, has been suggested as an alternative for more error-prone languages such as traditional C/C++. However, Rust also supports the use of libraries written in C/C++ to enhance compatibility with older languages and avoid redundant development, compromising its original guarantees. For example, memory corruption happened in C/C++ can lead to exploits such as buffer overflow, Use-After-Free and null-pointer dereferecing. To tackle this problem, recent studies have been conducted to secure interactino between Rust and C/C++ by isolation. This paper uncovers areas that have not been fully explored in previous studies, following limitation analysis on each. Finally, this paper suggests the future direction of research on safe interaction between Rust and C/C++.

A Static and Dynamic Design Technique of Smart Contract based on Block Chain (블록체인 기반의 스마트 컨트랙트 정적/동적 설계 기법)

  • Kim, Chul-Jin
    • Journal of the Korea Academia-Industrial cooperation Society
    • /
    • v.19 no.6
    • /
    • pp.110-119
    • /
    • 2018
  • Blockchain technology has been highly evaluated for its contracts (contracts for sale, real estate contracts) because of its excellent security, including integrity and non-repudiation. In a blockchain, these contract services can be developed using a technology called a smart contract, and several blockchain platforms provide a programming language for developing smart contracts. Bitcoin and Ethereum, typical blockchain platforms, provide the Bitcoin Scripts and Solidity languages. Using these programming languages, we can develop the smart contract, a digital contract that can be processed dynamically. Smart contracts are being developed in a variety of areas, but studies of designs based on a blockchain are insufficient. In this paper, we propose a meta-model and a static/dynamic design method based on Unified Modeling Language (UML) for smart contracts based on Ethereum. We propose a method for static design attributes and functions of smart contracts, and propose a technique for designing structures among contracts. Dynamic design proposes a technique for designing deployment, function calls, and synchronization among smart contracts, accounts, and blocks within a blockchain. Experiments verify the validity of the design method by applying the static/dynamic design method through real estate contracts.

A Program Transformational Approach for Rule-Based Hangul Automatic Programming (규칙기반 한글 자동 프로그램을 위한 프로그램 변형기법)

  • Hong, Seong-Su;Lee, Sang-Rak;Sim, Jae-Hong
    • The Transactions of the Korea Information Processing Society
    • /
    • v.1 no.1
    • /
    • pp.114-128
    • /
    • 1994
  • It is very difficult for a nonprofessional programmer in Koera to write a program with very High Level Language such as, V,REFINE, GIST, and SETL, because the semantic primitives of these languages are based on predicate calculus, set, mapping, or testricted natural language. And it takes time to be familiar with these language. In this paper, we suggest a method to reduce such difficulties by programming with the declarative, procedural constructs, and aggregate constructs. And we design and implement an experimental knowledge-based automatic programming system. called HAPS(Hangul Automatic Program System). HAPS, whose input is specification such as Hangul abstract algorithm and datatype or Hangul procedural constructs, and whose output is C program. The method of operation is based on rule-based and program transformation technique, and the problem transformation technique. The problem area is general problem. The control structure of HAPS accepts the program specification, transforms this specification according to the proper rule in the rule-base, and stores the transformed program specification on the global data base. HAPS repeats these procedures until the target C program is fully constructed.

  • PDF

Incremental Interpreter based on Action Equations (작용 식 기반 점진 해석기)

  • Han, Jeong-Ran;Lee, Gi-Ho
    • Journal of KIISE:Software and Applications
    • /
    • v.26 no.8
    • /
    • pp.1018-1027
    • /
    • 1999
  • 속성 문법은 언어의 정적인 의미구조를 표현하는 형식적인 표기법으로 동적인 의미구조를 표현하기는 부적절하다. 동적 의미구조를 잘 명세하고 명세된 언어를 구현하기 위해서 기존의 속성 문법을 확장하여 언어 구현에 필요한 동적인 작용들(actions)을 잘 표현해야 한다. 본 논문에서는 속성 문법을 확장하여 정적이고 동적인 의미구조를 잘 표현할 수 있는 새로운 작용 식(action equation)을 제시한다. 제시된 작용 식(action equation)의 동적인 의미 구조로 부터 SIMP 언어의 점진 해석기(incremental interpreter)를 설계하고 구현한다. 점진 해석기는 언어 기반의 프로그래밍 환경에서 수정된 부분만을 번역하여 프로그램의 전체 실행 결과를 얻는 해석기를 의미한다. 본 해석기는 SUN 1000에서 Lex와 Yacc을 사용해서 C 언어로 설계하고 구현하였다. 예제 프로그램을 실행시켰을 때 배정 문이나 IF문의 경우는 매우 효율적이었고 Loop의 경우는 재실행될 필요가 있는 영향받는 명령문들이 적을수록 점진 해석이 더 효율적으로 수행된다.Abstract Attribute grammars are a formal notation which expresses the static semantics of programming languages, but they are not suitable for expressing dynamic semantics. To describe dynamic semantics and implement a specified language, we extend attribute grammars and present new action equations which describe static and dynamic semantics. The incremental interpreter of a SIMP language is designed and implemented from the dynamic semantics of presented action equations. The incremental interpreter is to translate only modified part in the language-based programming environments and have results of whole program.Our interpreter is implemented in C with Lex and Yacc on SUN 1000. When we execute example programs, the incremental evaluation of any assignment and IF statements executes efficiently. But in the case of loop, we execute efficiently when the effected statements to be reexecuted in the loop are of small number.

Design of Teaching Method for SW Education Based On Python and Team-Shared Mental Model (파이썬과 팀 공유정신모형을 활용한 SW교육 방법의 설계)

  • Lee, Hakkyung;Park, Phanwoo;Yoo, Inhwan
    • Journal of The Korean Association of Information Education
    • /
    • v.24 no.1
    • /
    • pp.1-10
    • /
    • 2020
  • According to the Fourth Industrial Revolution, SW education is emphasized around the world to educate student with new abilities. Following to these global trends, SW education has become mandatory in Korea's 2015 revised curriculum. However, Korean elementary SW education is focused on the use of block-based programming languages. In addition, the point of view of selecting goals and organizing content of SW Education, the affective domain is ignored and focused only on the cognitive and psychomotor domains. So, this study explored method of SW education using the concept of Team-Shared Mental Model for develop of community capacity and Python, which is textual programming language gaining popularity recently. As a result of performing the post test t-test on two groups with similar Team-Shared Mental Model formation, we found that it was effective in forming a Team-Shared Mental Model of the group applying the SW teaching method suggested in the study.

A study on unstructured text mining algorithm through R programming based on data dictionary (Data Dictionary 기반의 R Programming을 통한 비정형 Text Mining Algorithm 연구)

  • Lee, Jong Hwa;Lee, Hyun-Kyu
    • Journal of Korea Society of Industrial Information Systems
    • /
    • v.20 no.2
    • /
    • pp.113-124
    • /
    • 2015
  • Unlike structured data which are gathered and saved in a predefined structure, unstructured text data which are mostly written in natural language have larger applications recently due to the emergence of web 2.0. Text mining is one of the most important big data analysis techniques that extracts meaningful information in the text because it has not only increased in the amount of text data but also human being's emotion is expressed directly. In this study, we used R program, an open source software for statistical analysis, and studied algorithm implementation to conduct analyses (such as Frequency Analysis, Cluster Analysis, Word Cloud, Social Network Analysis). Especially, to focus on our research scope, we used keyword extract method based on a Data Dictionary. By applying in real cases, we could find that R is very useful as a statistical analysis software working on variety of OS and with other languages interface.