TEBA
A Program Transformation Tools based on Attributed-Token Sequences
Documents
- The Manual and practice materials in Japanese are available here
[News]
- TEBA Ver1.55.2 is released (2024/11/27)
- CFG visitor supports #always_true and #alwasy_false nodes for literal conditions in CFG.
- TEBA Ver1.55.1 is released (2024/11/27)
- Added #always_true and #alwasy_false nodes for literal conditions in CFG.
- TEBA Ver1.55 is released (2024/11/21)
- Added a new option literal_cond in CFG to evaluate literal conditions in control statements.
- TEBA Ver1.54.2 is released (2024/11/04)
- Added node id numbers in the lables of PDG nodes.
- TEBA Ver1.54.1 is released (2024/10/29)
- Bug fixed for PDG supporting fallthrough in switch.
- TEBA Ver1.54 is released (2024/09/23)
- Bug fixed for PDG supporting fallthrough in switch.
- TEBA Ver1.53 is released (2024/09/23)
- Bug fixed for incorrect case of CFG and PDG.
- Support Japanese characters in generation of graphs using GraphViz.
- TEBA Ver1.52 is released (2024/08/26)
- Improved the performance of PDG generation and fixed the related bugs.
- TEBA Ver1.51.3 is released (2024/08/07)
- Bug fixed for CFG.pm: support function pointers in function arguments.
- TEBA Ver1.51.2 is released (2024/08/06)
- Bug fixed for CFG.pm: avoid to fail into the infinit loop while analyzing function arguments.
- TEBA Ver1.51.1 is released (2024/08/01)
- Added visitor package for PDG, PDG::VISITOR, in PDG.pm.
- TEBA Ver1.50.2 is released (2024/06/20)
- TEBA Ver1.50.1 is released (2024/06/18)
- Bug fix in syntax check of RewriteTokens2.pm.
- TEBA Ver1.50 is released (2024/04/26)
- The interpreter c_intp.pl supports array, pointer, struct type, enum, function call and most of operators.
- Improved CFG.pm to generate more correct CFG according to the interpreter.
- [past releases]
Source Program
Publications
- 吉田敦, 蜂巣吉成,
「前処理指令に対する制約のない前処理前コードの構文解析手法」,
情報処理学会論文誌, Vol.56, No.2, pp.592-610, Feb. 2015.
- Atsushi Yoshida, Hachisu Yoshinari,
"A Pattern Search Method for Unpreprocessed C Programs Based on Tokenized Syntax Trees",
Proc. of 14th IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM2014, pp.295-304, Sep. 2014.
- 前林達也, 吉田敦, 蜂巣吉成, 張漢明, 野呂昌満,
「前処理プログラムに対する記号表の構成手法」,
情報処理学会論文誌, Vol.54, No.2, pp.912-921, 2013.
- 吉田敦, 蜂巣吉成, 沢田篤史, 張漢明, 野呂昌満,
「属性付き字句系列に基づくソースコード書換え支援環境」,
情報処理学会論文誌, Vol.53, No.7, pp.1832-1849, 2012.
Tools
- cparse.pl : the parser that converts a program file or
a program fragments into an attributed token sequence.
- join-token.pl : a reconstruction tool of the orignal text
from a token sequence.
- rewrite_token.pl : a program transformation tool based on token sequence
patterns. It reads an attribute token sequence and translates it
according to the specified patterns by the argument.
- rewrite.pl : an experimental tool of program pattern transformation.
See the samples for demonstration.
- id_unify.pl : an unification tool to unify pair ids in two sequences.
It takes two files containing sequences, and generates unified sequences
in files *.unified for each files. It is useful when you want
to see the differences between two sequences in which pair-ids
may be assigned differently.
- preg.pl : a pattern search tool for programs.
See the samples for demonstration.
- rev_macro.pl : a reverse macro expansion tool that replace the parts
that matches the replacement of macro definitions with macro calls.
- ext_macro.pl : a forward macro expansion tool that replace macro calls
with the replacement of macro definitions.
- move_ifdef.pl : an alignment tool for branch directives, which moves
the branch directives not on the borders of statements,
function definitions, declarations to the borders.
YOSHIDA Atsushi, atsu [at] nanzan-u.ac.jp