Knowledge

Automatic programming

Source đź“ť

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:)

Index

Source code generation
computer science
computer programming
computer program
programmers
David Parnas
paper tape
high-level programming languages
Fortran
ALGOL
compiler
Autocode
Parnas
euphemism
Program synthesis
Mildred Koss
UNIVAC
meta-programming
programmer
component-based software engineering
ontological
programming tool
template processor
integrated development environment
source code
Json4Swift
Swift
Json2Kotlin
Kotlin
COBOL

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

↑