111:
and sorting programs, our task was to look at the larger programming process. We needed to understand how we might reuse tested code and have the machine help in programming. As we programmed, we examined the process and tried to think of ways to abstract these steps to incorporate them into higher-level language. This led to the development of interpreters, assemblers, compilers, and generators—programs designed to operate on or produce other programs, that is,
110:
programmer, explains: "Writing machine code involved several tedious steps—breaking down a process into discrete instructions, assigning specific memory locations to all the commands, and managing the I/O buffers. After following these steps to implement mathematical routines, a sub-routine library,
572:
130:
are concepts whereby programs can be written "to manufacture software components in an automated way" just as automation has improved "production of traditional commodities such as garments, automobiles, chemicals, and electronics."
528:
Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as
766:
585:
672:
607:
736:
685:
835:
770:
431:
Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
57:, tracing the history of "automatic programming" in published research, noted that in the 1940s it described automation of the manual process of punching
665:
510:
467:
Generative
Programming (GP) is an attempt to manufacture software components in an automated way by developing programs that synthesize other programs.
899:
1249:
1111:
1255:
346:
658:
460:
1440:
1188:
139:
599:
311:
908:
379:
166:
53:
There has been little agreement on the precise definition of automatic programming, mostly because its meaning has changed over time.
1280:
960:
904:
1506:
1140:
1013:
944:
879:
802:
341:
62:
541:
1501:
1318:
1081:
711:
273:
267:
154:
1096:
1086:
864:
351:
321:
230:, which replaces patterns in source code according to relatively simple rules, is a simple form of source-code generator.
206:
189:
1480:
1460:
1390:
1333:
1295:
1285:
1245:
1170:
1106:
1076:
1003:
992:
889:
869:
844:
807:
316:
181:
1435:
1198:
1165:
1060:
1036:
998:
978:
874:
783:
761:
746:
95:
is one type of automatic programming where a procedure is created from scratch, based on mathematical requirements.
1382:
1368:
1275:
1235:
1160:
1066:
1046:
913:
792:
726:
306:
248:
1475:
1240:
1150:
1130:
1116:
244:
are capable of generating a program's source code from a description of the program given in a natural language.
231:
575:". High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011.
1455:
1415:
1358:
1290:
1028:
859:
285:
255:
223:
258:
queries, which may then be executed to re-import the tables and their data, or migrate them to another RDBMS.
1465:
1445:
1386:
1373:
1353:
1180:
917:
821:
779:
1425:
1400:
1394:
1338:
1300:
988:
983:
935:
830:
731:
703:
694:
331:
1327:
1265:
1217:
787:
416:
Chun, Wendy. "On
Software, or the Persistence of Visual Knowledge." Grey Room 18. Boston: 2004, pg. 30.
523:
1470:
1450:
1410:
1212:
1071:
940:
927:
681:
336:
301:
289:
281:
237:
39:
1405:
1343:
1155:
1135:
1121:
853:
721:
716:
1222:
1175:
1145:
1091:
950:
849:
741:
650:
162:
588:". Cetus users and compiler infrastructure workshop, in conjunction with PACT. Vol. 2011. 2011.
1378:
1270:
1125:
1101:
1041:
1008:
970:
955:
894:
456:
326:
92:
1260:
1192:
1056:
797:
448:
400:
158:
43:
31:
645:
376:
1310:
1184:
1050:
751:
383:
356:
127:
496:
on this topic is planned for
November 2018. Earlier/1970s attempts in this area included
426:
1362:
1018:
884:
227:
89:
for programming in a higher-level language than was then available to the programmer."
17:
1495:
1348:
153:
is the process of generating source code based on a description of the problem or an
548:
82:
54:
1230:
170:
277:
135:
103:
58:
47:
86:
600:"ChatGPT can write code. Now researchers say it's good at fixing bugs, too"
479:
78:
74:
452:
493:
447:. Lecture Notes in Computer Science. Vol. 3566. pp. 315–325.
241:
66:
635:
by
Krzysztof Czarnecki and Ulrich W. Eisenecker, Addison Wesley, 2000.
107:
219:
These application generators supported COBOL inserts and overrides.
251:
provide a function that will export the content of the database as
196:
70:
497:
212:
654:
185:
138:
productivity. It is often related to code-reuse topics such as
252:
177:
176:
Modern programming languages are well supported by tools like
571:
Noaje, Gabriel, Christophe
Jaillet, and Michaël Krajecki. "
73:. In fact, one of the earliest programs identifiable as a
480:"Generative Programming: Concepts and Experiences (GPCE)"
633:
Generative
Programming: Methods, Tools, and Applications
85:
concluded that "automatic programming has always been a
443:
P. Cointe (2005). "Towards
Generative Programming".
157:
model such as a template and is accomplished with a
1424:
1309:
1211:
1027:
969:
926:
829:
820:
760:
702:
693:
573:Source-to-source code translator: OpenMP C to CUDA
511:Paying Too Much for Custom Application Development
586:The ROSE source-to-source compiler infrastructure
50:to write the code at a higher abstraction level.
276:(LCDP) is software that provides an environment
215:'s PMM2170 application-program-generator package
666:
401:Software Aspects of Strategic Defense Systems
8:
169:(IDE). These tools allow the generation of
826:
699:
673:
659:
651:
737:Programming in the large and in the small
288:and configuration instead of traditional
368:
347:Fourth-generation programming language
203:the DYL250/DYL260/DYL270/DYL280 series
61:. Later it referred to translation of
610:from the original on February 3, 2023
7:
445:Unconventional Programming Paradigms
140:component-based software engineering
42:in which some mechanism generates a
312:Comparison of code generation tools
234:code generation tools also exist.
167:integrated development environment
25:
584:Quinlan, Dan, and Chunhua Liao. "
1281:Partitioned global address space
63:high-level programming languages
598:Tung, Liam (January 26, 2023).
377:Automatic Inductive Programming
342:Vocabulary-based transformation
427:"About Generative Programming"
352:Low-code development platforms
268:Low-code development platforms
173:through any of various means.
1:
500:and the related Lex programs.
322:Language-oriented programming
274:low-code development platform
207:Business Controls Corporation
195:Programs that could generate
808:Uniform Function Call Syntax
317:Feature-oriented programming
27:Type of computer programming
1276:Parallel programming models
1250:Concurrent constraint logic
646:Code Generation for Dummies
249:relational database systems
1523:
1369:Metalinguistic abstraction
1236:Automatic mutual exclusion
307:Automated machine learning
265:
1241:Choreographic programming
286:graphical user interfaces
1291:Relativistic programming
542:"DYL-280 Command Syntax"
524:"Application generator"
226:processor, such as the
134:The goal is to improve
1507:Source code generation
1301:Structured concurrency
686:Comparison by language
332:Program transformation
151:Source-code generation
146:Source-code generation
124:Generative programming
119:Generative programming
18:Source code generation
1502:Programming paradigms
1266:Multitier programming
1082:Interface description
682:Programming paradigms
262:Low-code applications
238:Large language models
213:Peat Marwick Mitchell
126:and the related term
113:automatic programming
36:automatic programming
337:Semantic translation
302:Automatic bug fixing
290:computer programming
282:application software
40:computer programming
1406:Self-modifying code
1014:Probabilistic logic
945:Functional reactive
900:Expression-oriented
854:Partial application
453:10.1007/11527800_24
375:Ricardo Aler Mur, "
1319:Attribute-oriented
1092:List comprehension
1037:Algebraic modeling
850:Anonymous function
742:Design by contract
712:Jackson structures
405:American Scientist
388:ICML 2006 Tutorial
382:2016-03-04 at the
163:template processor
1489:
1488:
1379:Program synthesis
1271:Organic computing
1207:
1206:
1112:Non-English-based
1087:Language-oriented
865:Purely functional
816:
815:
462:978-3-540-27884-9
327:Modeling language
93:Program synthesis
16:(Redirected from
1514:
1391:by demonstration
1296:Service-oriented
1286:Process-oriented
1261:Macroprogramming
1246:Concurrent logic
1117:Page description
1107:Natural language
1077:Grammar-oriented
1004:Nondeterministic
993:Constraint logic
895:Point-free style
890:Functional logic
827:
798:Immutable object
717:Block-structured
700:
675:
668:
661:
652:
620:
619:
617:
615:
595:
589:
582:
576:
569:
563:
562:
560:
559:
553:
547:. Archived from
546:
538:
532:
531:
520:
514:
507:
501:
492:A conference of
490:
484:
483:
476:
470:
469:
440:
434:
433:
423:
417:
414:
408:
407:. November 1985.
397:
391:
373:
232:Source-to-source
159:programming tool
128:meta-programming
44:computer program
32:computer science
21:
1522:
1521:
1517:
1516:
1515:
1513:
1512:
1511:
1492:
1491:
1490:
1485:
1427:
1420:
1311:Metaprogramming
1305:
1221:
1216:
1203:
1185:Graph rewriting
1023:
999:Inductive logic
979:Abductive logic
965:
922:
885:Dependent types
833:
812:
784:Prototype-based
764:
762:Object-oriented
756:
752:Nested function
747:Invariant-based
689:
679:
642:
629:
624:
623:
613:
611:
597:
596:
592:
583:
579:
570:
566:
557:
555:
551:
544:
540:
539:
535:
522:
521:
517:
509:James Wilcox, "
508:
504:
491:
487:
478:
477:
473:
463:
442:
441:
437:
425:
424:
420:
415:
411:
399:D. L. Parnas. "
398:
394:
384:Wayback Machine
374:
370:
365:
357:Emergent Coding
298:
270:
264:
256:data definition
199:code include:
148:
121:
101:
46:to allow human
28:
23:
22:
15:
12:
11:
5:
1520:
1518:
1510:
1509:
1504:
1494:
1493:
1487:
1486:
1484:
1483:
1478:
1473:
1468:
1463:
1458:
1453:
1448:
1443:
1438:
1432:
1430:
1422:
1421:
1419:
1418:
1413:
1408:
1403:
1398:
1376:
1371:
1366:
1356:
1351:
1346:
1341:
1336:
1331:
1321:
1315:
1313:
1307:
1306:
1304:
1303:
1298:
1293:
1288:
1283:
1278:
1273:
1268:
1263:
1258:
1253:
1243:
1238:
1233:
1227:
1225:
1209:
1208:
1205:
1204:
1202:
1201:
1196:
1181:Transformation
1178:
1173:
1168:
1163:
1158:
1153:
1148:
1143:
1138:
1133:
1128:
1119:
1114:
1109:
1104:
1099:
1094:
1089:
1084:
1079:
1074:
1069:
1067:Differentiable
1064:
1054:
1047:Automata-based
1044:
1039:
1033:
1031:
1025:
1024:
1022:
1021:
1016:
1011:
1006:
1001:
996:
986:
981:
975:
973:
967:
966:
964:
963:
958:
953:
948:
938:
932:
930:
924:
923:
921:
920:
914:Function-level
911:
902:
897:
892:
887:
882:
877:
872:
867:
862:
857:
847:
841:
839:
824:
818:
817:
814:
813:
811:
810:
805:
800:
795:
790:
776:
774:
758:
757:
755:
754:
749:
744:
739:
734:
729:
727:Non-structured
724:
719:
714:
708:
706:
697:
691:
690:
680:
678:
677:
670:
663:
655:
649:
648:
641:
640:External links
638:
637:
636:
628:
625:
622:
621:
590:
577:
564:
533:
515:
513:", March 2011.
502:
485:
471:
461:
435:
418:
409:
392:
367:
366:
364:
361:
360:
359:
354:
349:
344:
339:
334:
329:
324:
319:
314:
309:
304:
297:
294:
280:use to create
266:Main article:
263:
260:
228:C preprocessor
217:
216:
210:
204:
147:
144:
120:
117:
100:
97:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1519:
1508:
1505:
1503:
1500:
1499:
1497:
1482:
1479:
1477:
1474:
1472:
1469:
1467:
1464:
1462:
1459:
1457:
1454:
1452:
1451:Data-oriented
1449:
1447:
1444:
1442:
1439:
1437:
1434:
1433:
1431:
1429:
1423:
1417:
1414:
1412:
1409:
1407:
1404:
1402:
1399:
1396:
1392:
1388:
1384:
1380:
1377:
1375:
1372:
1370:
1367:
1364:
1360:
1357:
1355:
1352:
1350:
1349:Homoiconicity
1347:
1345:
1342:
1340:
1337:
1335:
1332:
1329:
1325:
1322:
1320:
1317:
1316:
1314:
1312:
1308:
1302:
1299:
1297:
1294:
1292:
1289:
1287:
1284:
1282:
1279:
1277:
1274:
1272:
1269:
1267:
1264:
1262:
1259:
1257:
1256:Concurrent OO
1254:
1251:
1247:
1244:
1242:
1239:
1237:
1234:
1232:
1229:
1228:
1226:
1224:
1219:
1214:
1210:
1200:
1197:
1194:
1190:
1186:
1182:
1179:
1177:
1174:
1172:
1169:
1167:
1164:
1162:
1159:
1157:
1154:
1152:
1151:Set-theoretic
1149:
1147:
1144:
1142:
1139:
1137:
1134:
1132:
1131:Probabilistic
1129:
1127:
1123:
1120:
1118:
1115:
1113:
1110:
1108:
1105:
1103:
1100:
1098:
1095:
1093:
1090:
1088:
1085:
1083:
1080:
1078:
1075:
1073:
1070:
1068:
1065:
1062:
1058:
1055:
1052:
1048:
1045:
1043:
1040:
1038:
1035:
1034:
1032:
1030:
1026:
1020:
1017:
1015:
1012:
1010:
1007:
1005:
1002:
1000:
997:
994:
990:
987:
985:
982:
980:
977:
976:
974:
972:
968:
962:
959:
957:
954:
952:
949:
946:
942:
939:
937:
934:
933:
931:
929:
925:
919:
915:
912:
910:
909:Concatenative
906:
903:
901:
898:
896:
893:
891:
888:
886:
883:
881:
878:
876:
873:
871:
868:
866:
863:
861:
858:
855:
851:
848:
846:
843:
842:
840:
837:
832:
828:
825:
823:
819:
809:
806:
804:
801:
799:
796:
794:
791:
789:
785:
781:
778:
777:
775:
772:
768:
763:
759:
753:
750:
748:
745:
743:
740:
738:
735:
733:
730:
728:
725:
723:
720:
718:
715:
713:
710:
709:
707:
705:
701:
698:
696:
692:
687:
683:
676:
671:
669:
664:
662:
657:
656:
653:
647:
644:
643:
639:
634:
631:
630:
626:
609:
605:
601:
594:
591:
587:
581:
578:
574:
568:
565:
554:on 2018-07-30
550:
543:
537:
534:
530:
526:. PCmag.com.
525:
519:
516:
512:
506:
503:
499:
495:
489:
486:
481:
475:
472:
468:
464:
458:
454:
450:
446:
439:
436:
432:
428:
422:
419:
413:
410:
406:
402:
396:
393:
389:
385:
381:
378:
372:
369:
362:
358:
355:
353:
350:
348:
345:
343:
340:
338:
335:
333:
330:
328:
325:
323:
320:
318:
315:
313:
310:
308:
305:
303:
300:
299:
295:
293:
291:
287:
283:
279:
275:
269:
261:
259:
257:
254:
250:
245:
243:
239:
235:
233:
229:
225:
220:
214:
211:
208:
205:
202:
201:
200:
198:
193:
191:
187:
183:
179:
174:
172:
168:
164:
160:
156:
152:
145:
143:
141:
137:
132:
129:
125:
118:
116:
114:
109:
105:
98:
96:
94:
90:
88:
84:
80:
76:
72:
68:
64:
60:
56:
51:
49:
45:
41:
38:is a type of
37:
33:
19:
1456:Event-driven
1323:
860:Higher-order
788:Object-based
632:
612:. Retrieved
603:
593:
580:
567:
556:. Retrieved
549:the original
536:
527:
518:
505:
488:
474:
466:
444:
438:
430:
421:
412:
404:
395:
390:. June 2006.
387:
371:
271:
246:
236:
221:
218:
194:
175:
150:
149:
133:
123:
122:
112:
104:Mildred Koss
102:
91:
55:David Parnas
52:
35:
29:
1466:Intentional
1446:Data-driven
1428:of concerns
1387:Inferential
1374:Multi-stage
1354:Interactive
1231:Actor-based
1218:distributed
1161:Stack-based
961:Synchronous
918:Value-level
905:Applicative
822:Declarative
780:Class-based
278:programmers
186:Json2Kotlin
171:source code
155:ontological
106:, an early
77:was called
48:programmers
1496:Categories
1441:Components
1426:Separation
1401:Reflective
1395:by example
1339:Extensible
1213:Concurrent
1189:Production
1176:Templating
1156:Simulation
1141:Scientific
1061:Spacecraft
989:Constraint
984:Answer set
936:Flow-based
836:comparison
831:Functional
803:Persistent
767:comparison
732:Procedural
704:Structured
695:Imperative
627:References
558:2018-09-03
178:Json4Swift
161:such as a
136:programmer
59:paper tape
1328:Inductive
1324:Automatic
1146:Scripting
845:Recursive
87:euphemism
1481:Subjects
1471:Literate
1461:Features
1416:Template
1411:Symbolic
1383:Bayesian
1363:Hygienic
1223:parallel
1102:Modeling
1097:Low-code
1072:End-user
1009:Ontology
941:Reactive
928:Dataflow
614:June 22,
608:Archived
380:Archived
296:See also
284:through
240:such as
79:Autocode
75:compiler
1436:Aspects
1344:Generic
1334:Dynamic
1193:Pattern
1171:Tactile
1136:Quantum
1126:filters
1057:Command
956:Streams
951:Signals
722:Modular
494:SIGPLAN
242:ChatGPT
209:'s SB-5
67:Fortran
1199:Visual
1166:System
1051:Action
875:Strict
459:
190:Kotlin
184:) and
165:or an
108:UNIVAC
99:Origin
83:Parnas
1476:Roles
1359:Macro
1122:Pipes
1042:Array
1019:Query
971:Logic
880:GADTs
870:Total
793:Agent
604:ZDNET
552:(PDF)
545:(PDF)
363:Notes
247:Many
224:macro
197:COBOL
182:Swift
71:ALGOL
65:like
1124:and
771:list
616:2023
498:Yacc
457:ISBN
69:and
1029:DSL
529:...
449:doi
403:."
386:",
253:SQL
192:).
115:."
30:In
1498::
1393:,
1389:,
1385:,
1191:,
1187:,
916:,
907:,
786:,
782:,
769:,
606:.
602:.
465:.
455:.
429:.
292:.
272:A
222:A
142:.
81:.
34:,
1397:)
1381:(
1365:)
1361:(
1330:)
1326:(
1252:)
1248:(
1220:,
1215:,
1195:)
1183:(
1063:)
1059:(
1053:)
1049:(
995:)
991:(
947:)
943:(
856:)
852:(
838:)
834:(
773:)
765:(
688:)
684:(
674:e
667:t
660:v
618:.
561:.
482:.
451::
188:(
180:(
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.