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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.