DOI QR코드

DOI QR Code

자바 람다식에 대한 형식 의미론

Formal Semantics for Lambda Expression of Java

  • 투고 : 2022.10.21
  • 심사 : 2022.12.01
  • 발행 : 2023.05.31

초록

자바의 최신 기능인 함수 인터페이스와 람다식에 대한 의미구조를 명세하는 것은 향후 유사한 기능을 설계할 때 참고할 수 있고 표준화하는 과정이나 최적화된 번역기를 구현하는 과정에서도 필요하다. 본 연구에서는 자바의 함수 인터페이스와 람다식에 대한 의미구조를 표현하기 위해 기존의 작용식을 수정하고 업그레이드해서 함수 인터페이스와 람다식의 정적·동적 의미구조를 표현하는 작용식 3.0을 새롭게 제시한다. 작용식 3.0에 명세된 의미구조를 자바로 구현해 자바 프로그램들에 대한 실행시간을 측정하고 시뮬레이션을 통해 작용식 3.0이 구현가능한 실제적인 의미구조 명세법인 것을 입증한다. 판독성(Readability) 측면, 모듈성(Modularity) 측면, 확장성(Extensibility) 측면, 융통성(Flexibility) 측면에서 대표적인 의미구조 표현법과 작용식 3.0을 비교하여 작용식 3.0의 우월성을 확인하고자 한다.

Specifying the semantic structure for functional interfaces and lambda expressions, which are the latest features of Java, can be referenced when designing similar functions in the future, and is also required in the process of standardizing or implementing an optimized translator. In this study, action equation 3.0 is newly proposed to express the static and dynamic semantic structure of functional interfaces and lambda expressions by modifying and upgrading the existing expressions to express the semantic structures of java functional interfaces and lambda expressions. Measure the execution time of java programs by implementing the semantic structure specified in action equation 3.0 in java, and prove that action equation 3.0 is a real semantic structure that can be implemented through simulation. The superiority of this action equation 3.0 is to be confirmed by comparing the action equation 3.0 specified in the four areas of readability, modularity, extensibility and flexibility with the existing representative semantic expression methods.

키워드

과제정보

이 연구는 2022년도 협성대학교 교내연구비 지원에 의한 연구임(20220047).

참고문헌

  1. J. L. Han, "Formal semantics based on action equation 2.0 for python," KIPS Transactions on Computer and Communication Systems, Vol.10, No.6, pp.163-172, 2021. https://doi.org/10.3745/KTCCS.2021.10.6.163
  2. J. L. Han, "Formal semantics for processing exceptions," KIPS Transactions on Computer and Communication Systems, Vol.17, No.4, pp.173-180, Apr. 2010. https://doi.org/10.3745/KIPSTA.2010.17A.4.173
  3. J. L. Han, "Specification of semantics for object oriented programming language," KSII Transactions on Internet and Information Systems, Vol.8, No.5, pp.35-43, 2007.
  4. J. L. Han and Sung Choi, "Building of integrated increment interpretation system based on action equations," The KIPS Transactions: Part A, Vol.11, No.3, pp.149-156, 2004. https://doi.org/10.3745/KIPSTA.2004.11A.3.149
  5. J. L. Han, "Incremental interpretation based on action equations," Ph. D Thesis Ewha Womans University, 1999.
  6. G. J. Smeding, "An executable operational semantics for Python," Master's thesis, Utrecht University, 2009.
  7. D. Guth, "A formal semantics of Python 3.3," Master's thesis, University of Illinois, 2013.
  8. S. Ji and H. Im, "Implementing structural operational semantics in Python," Jorunal of KIISE, Vol.45, No.11, pp.1176-1184, 2018. https://doi.org/10.5626/JOK.2018.45.11.1176
  9. Y. Zhang and B. Xu, "A survey of semantic description frameworks for programming languages," ACM SIGPLAN Notices, Vol.39, No.3, pp.14-30, 2004. https://doi.org/10.1145/981009.981013
  10. J. Alves-Foss, editor. Formal Syntax and Semantics of Java, Vol 1523 of Lecture Notes in Computer Science. Springer-Verlag.
  11. D. A. Watt and D. F. Brown, "Formalising the dynamic semantics of Java," 2006.