密码领域专用语言研究
Domain-Specific Language Research in the Field of Cryptography
DOI: 10.12677/CSA.2019.91019, PDF,  被引量    国家自然科学基金支持
作者: 范明钰*, 何新民:电子科技大学计算机科学与工程学院(网络空间安全学院),四川 成都
关键词: 信息安全DSLPCL密码领域专用语言Cryptol DSLInformation Security DSL PCL PCL for Cryptography Cryptol DSL
摘要: 现有的通用编程语言,对于初学者来说,即使是编写简单循环结构的也有难度。为了使专业人员将工作重心集中在应用程序逻辑/业务模型上,领域专用编程语言(DSL)得到广泛应用。本文分析DSL的原理和方法,维护性问题;介绍一款国内首次提出的密码领域专用语言PCL,给出了其技术原理、基本功能,以及密码算法应用例子。在PCL之前,包括Cryptol语言在内,没有任何语言可以直观描述密码算法的逻辑结构。
Abstract: It is difficult for beginners to write a simple loop structure with the existing general-purpose programming language. Domain-specific programming languages (DSL) are widely used to enable professionals to focus their efforts on application logic/business models. This paper analyzes the principles and methods of DSL, its maintenance issues, and introduces a cryptographic domain-specific language called PCL that was firstly proposed in China. The technical principle, basic functions, and application examples of cryptographic algorithms are given. Prior to PCL, there were no languages to describe the logical structure of cryptographic algorithms visually, including the Cryptol language.
文章引用:范明钰, 何新民. 密码领域专用语言研究[J]. 计算机科学与应用, 2019, 9(1): 157-165. https://doi.org/10.12677/CSA.2019.91019

参考文献

[1] Domain-Specific Language.
https://en.wikipedia.org/wiki/Domain-specific_language
[2] Fowler, M. (2018) Domain Specific Languages. http://adv-r.had.co.nz/dsl.html
[3] Van Deursen, A. and Klint, P. (2018) Domain-Specific Language Design Requires Feature Descriptions.
https://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=69420
[4] Klint, P., Van Der Storm, T. and Vinju, J.J. (2018) On the Impact of DSL Tools on the Maintainability. http://dl.acm.org/ft_gateway.cfm?id=1868291&type=pdf
[5] (2018) ANTLR.
https://en.wikipedia.org/wiki/ANTLR
[6] (2018) OMeta.
https://en.wikipedia.org/wiki/OMeta
[7] (2018) COBOL.
https://en.wikipedia.org/wiki/COBOL
[8] (2018) Fortran.
https://en.wikipedia.org/wiki/Fortran
[9] (2018) Lisp.
https://en.wikipedia.org/wiki/Lisp
[10] (2018) YACC.
https://en.wikipedia.org/wiki/Yacc
[11] (2018) SDL.
https://en.wikipedia.org/wiki/SDL
[12] (2018) Excel.
https://en.wikipedia.org/wiki/Excel
[13] (2018) Ruby.
https://www.ruby-lang.org/en/
[14] (2018) Scala.
https://scala-lang.org/
[15] van den Brand, M.G.J. (2018) Compiling Language Definitions: The ASF + SDF Compiler. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.33.5167
[16] Stratego.
https://link.springer.com/chapter/10.1007%2F3-540-45127-7_27, 2018-11.
[17] TXL.
https://en.wikipedia.org/wiki/TXL_(programming_language), 2018-11.
[18] Hedin, G. and Magnusson, E. (2003) Ja-stAdd—An Aspect-Oriented Compiler Construction System. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.100.8197, 2018-11.
[19] IEEE Standard for Software Maintenance.
https://ieeexplore.ieee.org/document/720567, 2018-11.
[20] Cryptol The Language of Cryptography.
https://cryptol.net, 2018-09.
[21] GaloisInc/Cryptol.
https://github.com/GaloisInc/cryptol/releases/tag/2.6.0, 2018-10.
[22] Agosta, G. and Pelosi, G. A Domain Specific Language for Cryptography. http://home.deib.polimi.it/agosta/lib/exe/fetch.php?id=gpa%3Acv&cache=cache&media=gpa:agosta07fdl.pdf, 2018-11.
[23] TensorFlow.
https://en.wikipedia.org/wiki/TensorFlow, 2018-11.
[24] 联系作者获得语言安装包. h20031795@vip.163.com