• 中国计算机学会会刊
  • 中国科技核心期刊
  • 中文核心期刊

Computer Engineering & Science ›› 2024, Vol. 46 ›› Issue (10): 1807-1814.

• Software Engineering • Previous Articles     Next Articles

A study of formalizing programming languages with Barendregt’s variable convention

ALIMUJIANG Yasen1,AIHEMAITI Abulaiti2,SHAERDANER Paerhati1,ABUDUKELIMU Abulizi1,HALIDANMU Abudukelimu1   

  1. (1.College of Information Management,Xinjiang University of Finance & Economics,Urumqi 830000;
    2.Institute of Statistics and Data Science,Xinjiang University of Finance & Economics,Urumqi 830000,China)
  • Received:2023-09-15 Revised:2023-11-12 Accepted:2024-10-25 Online:2024-10-25 Published:2024-10-29

Abstract: Implementing name bindings occurring in programming languages, types, and logical systems is not easy. In theory, the abstract thinking of the human mind can detect and avoid a possible variable capture. In implementation though, detecting variable capture requires clumsy auxiliary operations, which complicates formalization and proofs. Several name binding techniques have been proposed to have readable representations, capture-free substitutions, and intuitive proofs. However, their formalizations are quite different from theory: terms and proofs do not look like of theory. This paper proposes a name binding technique, substitutions and inference rules incorporating a term refreshing function comply with Barendregts variable convention, thus the formalization of formal systems almost identical to their theory. Untyped λ-calculus and simply typed λ-calculus are formalized to demonstrate the merits of this technique.

Key words: variable name, name binding, formal system, Barendregts variable convention, programming language theory