Search : [ keyword: 파이썬 ] (2)

Type-Checking-based Refinement for the Analysis of Uncaught Exceptions in Digital Forensic Software

Seowoo Lee, Dongwon Lee, Sehoon Kim

http://doi.org/10.5626/JOK.2023.50.12.1071

This paper designs an uncaught exception detection scheme for digital forensic software written in Python, aiming at enhancing the reliability of the forensic process. Inherited from the legacy set-constraint-based analysis method, the proposed scheme identifies potential uncaught exceptions in the target forensic software. Next, with the help of Pyright, a Python-specific static type checker, it is possible to eliminate meaningless alarms inevitably created during the analysis process, such as key errors in list types or out-of-range index errors in dictionary types. In addition, we remove duplicated detections based on the dependency tree which traces the inclusion relationship between each component or point of a given module. The experiment results, obtained by applying our static analyzer to nine benchmarks of digital forensic software, demonstrate that the proposed scheme successfully finds 10 locations of three exception patterns, including dictionary key errors, out-of-range index errors, and division by zero errors, which could not be located before. Furthermore, the analysis achieves an average of 84% and a maximum of 89% reduction in false alarms for each benchmark.

Implementing Structural Operational Semantics in Python

Suhwan Ji, Hyeonseung Im

http://doi.org/10.5626/JOK.2018.45.11.1176

Operational semantics is the most commonly used technique to formally define the semantics of a programming language. It defines the meaning of a program in terms of how it is executed or interpreted as a sequence of computational steps. This paper introduces an implementation technique for small-step structural operational semantics for a simple ML-style functional language using visitor patterns and exception handling in Python. The secondary objective of this paper is to explain the core concepts of programming language theory and the techniques for implementing these concepts using Python, instead of traditional functional languages such as ML, Haskell, and Scheme. Since Python has a wide abundant user base due to its rich library and flexibility, it is more suitable to explain operational semantics for common users than functional languages, which are relatively less known and have a high learning curve.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

Editorial Office

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr