Knowledge

Program transformation

Source 📝

373: 316: 40: 154:
etc.) may be of equal difficulty as building the program transformation system itself because of the complexity of such languages. To be widely useful, a transformation system must be able to handle many target programming languages, and must provide some means of specifying such front ends.
162:: one program is a refinement of another if it terminates on all the initial states for which the original program terminates, and for each such state it is guaranteed to terminate in a possible final state for the original program. In other words, a refinement of a program is 303:: The JavaParser library provides you with an Abstract Syntax Tree of your Java code. The AST structure then allows you to work with your Java code in an easy programmatic way.. 297:: A library to analyze, transform, rewrite, and transpile Java source code. It parses source files to build a well-designed AST with powerful analysis and transformation API. 142:, and regeneration of valid source code from transformed program representations. The problem of building and integrating adequate front ends for conventional languages ( 119:
that applies specifications of the required transformations. Program transformations may be specified as automated procedures that modify compiler data structures (e.g.
256: 448: 109: 123:) representing the program text, or may be specified more conveniently using patterns or templates representing parameterized source code fragments. 414: 357: 179: 116: 288: 240: 219: 83: 443: 433: 50: 112:
and in fewer cases the transformations result in programs that semantically differ from the original in predictable ways.
407: 134:. This usually requires integration of a full front-end for the programming language of interest, including source code 350: 143: 28: 291:: A Program Transformation System for DSLs and modern (C++, Java, ...) and legacy (COBOL, RPG) computer languages 194: 438: 209: 65: 400: 204: 170:
than the original program. If two programs are refinements of each other, then the programs are equivalent.
139: 105: 61: 343: 199: 214: 283: 138:, building internal program representations of code structures, the meaning of program symbols, useful 380: 131: 120: 250: 159: 372: 189: 17: 323: 101: 27:"Language processing program" redirects here. For natural language processing programs, see 184: 130:
transformation systems is that they be able to effectively process programs written in a
115:
While the transformations can be performed manually, it is often more practical to use a
384: 327: 104:
and generates another program. In many cases the transformed program is required to be
427: 278: 127: 315: 300: 273: 135: 68:. Statements consisting only of original research should be removed. 147: 294: 151: 33: 158:
A generalisation of semantic equivalence is the notion of
388: 331: 57: 279:
Papers on program transformation theory and practicE
242:Proving Program Refinements and Transformations 408: 351: 8: 415: 401: 358: 344: 255:: CS1 maint: location missing publisher ( 108:to the original, relative to a particular 84:Learn how and when to remove this message 231: 284:Transformation Technology Bibliography 248: 180:List of program transformation systems 7: 369: 367: 312: 310: 289:DMS Software Reengineering Toolkit 245:(DPhil Thesis). Oxford University. 25: 220:Operation reduction for low power 449:Programming language topic stubs 371: 314: 38: 274:The Program transformation Wiki 100:is any operation that takes a 1: 117:program transformation system 18:Program transformation system 387:. You can help Knowledge by 330:. You can help Knowledge by 126:A practical requirement for 64:the claims made and adding 29:natural language processing 465: 366: 309: 26: 195:Source-to-source compiler 210:Transformational grammar 205:Transformation language 106:semantically equivalent 444:Computer science stubs 434:Program transformation 383:-related article is a 200:Source code generation 98:program transformation 239:Ward, Martin (1989). 215:Dynamic recompilation 121:abstract syntax trees 381:programming-language 132:programming language 168:more deterministic 160:program refinement 49:possibly contains 396: 395: 339: 338: 190:Program synthesis 94: 93: 86: 51:original research 16:(Redirected from 456: 417: 410: 403: 375: 368: 360: 353: 346: 324:computer science 318: 311: 261: 260: 254: 246: 236: 110:formal semantics 102:computer program 89: 82: 78: 75: 69: 66:inline citations 42: 41: 34: 21: 464: 463: 459: 458: 457: 455: 454: 453: 439:Metaprogramming 424: 423: 422: 421: 365: 364: 307: 270: 265: 264: 247: 238: 237: 233: 228: 185:Metaprogramming 176: 140:static analyses 90: 79: 73: 70: 55: 43: 39: 32: 23: 22: 15: 12: 11: 5: 462: 460: 452: 451: 446: 441: 436: 426: 425: 420: 419: 412: 405: 397: 394: 393: 376: 363: 362: 355: 348: 340: 337: 336: 319: 305: 304: 298: 292: 286: 281: 276: 269: 268:External links 266: 263: 262: 230: 229: 227: 224: 223: 222: 217: 212: 207: 202: 197: 192: 187: 182: 175: 172: 92: 91: 46: 44: 37: 24: 14: 13: 10: 9: 6: 4: 3: 2: 461: 450: 447: 445: 442: 440: 437: 435: 432: 431: 429: 418: 413: 411: 406: 404: 399: 398: 392: 390: 386: 382: 377: 374: 370: 361: 356: 354: 349: 347: 342: 341: 335: 333: 329: 326:article is a 325: 320: 317: 313: 308: 302: 299: 296: 293: 290: 287: 285: 282: 280: 277: 275: 272: 271: 267: 258: 252: 244: 243: 235: 232: 225: 221: 218: 216: 213: 211: 208: 206: 203: 201: 198: 196: 193: 191: 188: 186: 183: 181: 178: 177: 173: 171: 169: 165: 161: 156: 153: 149: 145: 141: 137: 133: 129: 124: 122: 118: 113: 111: 107: 103: 99: 88: 85: 77: 67: 63: 59: 53: 52: 47:This article 45: 36: 35: 30: 19: 389:expanding it 378: 332:expanding it 321: 306: 241: 234: 167: 164:more defined 163: 157: 125: 114: 97: 95: 80: 71: 48: 128:source code 74:August 2016 428:Categories 301:JavaParser 226:References 58:improve it 251:cite book 62:verifying 174:See also 136:parsing 56:Please 379:This 322:This 295:Spoon 385:stub 328:stub 257:link 166:and 144:Java 152:PHP 148:C++ 60:by 430:: 253:}} 249:{{ 150:, 146:, 96:A 416:e 409:t 402:v 391:. 359:e 352:t 345:v 334:. 259:) 87:) 81:( 76:) 72:( 54:. 31:. 20:)

Index

Program transformation system
natural language processing
original research
improve it
verifying
inline citations
Learn how and when to remove this message
computer program
semantically equivalent
formal semantics
program transformation system
abstract syntax trees
source code
programming language
parsing
static analyses
Java
C++
PHP
program refinement
List of program transformation systems
Metaprogramming
Program synthesis
Source-to-source compiler
Source code generation
Transformation language
Transformational grammar
Dynamic recompilation
Operation reduction for low power
Proving Program Refinements and Transformations

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.