Knowledge (XXG)

Seed7

Source 📝

857:, to translate MASTER to Pascal, was proposed, but unimplemented, in the original project. In 1989, development began on an interpreter for MASTER, named HAL. In 2005, the MASTER and HAL projects were released as open source under the Seed7 project name. Since then new versions have been released every two or three weeks. As of version 2021-04-25 the Seed7 project contains more than 500,000 22: 382:. Along with many other features, it provides an extension mechanism. Seed7 supports introducing new syntax elements and their semantics into the language, and allows new language constructs to be defined and written in Seed7. For example, programmers can introduce syntax and semantics of new 864:
Mertes has said that the name Seed7 came from the concept of his ideas for the language being spread as seeds that would grow as others used it. The "7" part was added because it was a prime number that he felt sounded good with "seed".
852:
Seed7 is based on MASTER, an extensible programming language described in the diploma and doctoral theses of Thomas Mertes. Most of the original ideas of MASTER, such as user defined statements and operators, can be found in Seed7. A
844:
databases. Independent from the database prepared statements can be created, bind variables can be used, the statements can be executed and result sets can be fetched.
1485: 1470: 1500: 1475: 873:
An extension includes two parts: a syntax definition, giving a template for the new syntactic form, and a standard Seed7 function, used to define the semantics.
1465: 1495: 1505: 461: 752:
operating system features and third-party libraries (which might not always be present) directly. Seed7 libraries contain abstraction layers for
1490: 760:
and third-party libraries, e.g. graphic and database libraries. In other words, no changes are needed to move Seed7 programs between different
1283: 1300: 1210: 371: 312: 129: 1385: 1224: 757: 530: 612: 277: 105: 43: 36: 1480: 1282:
Mertes, Thomas, "Entwurf einer erweiterbaren höheren Programmiersprache", Diploma thesis Vienna University of Technology (1984).(
935: 541: 661: 519: 525:
Overloading and object-orientation (with multiple dispatch) are seen as common concepts. They just happen at different times:
439: 1439: 689: 375: 332: 1445: 783: 383: 787: 745: 677: 611:. The interpreter starts programs very quickly, supporting fast program development. The compiler uses the parser and 411: 356: 192: 137: 86: 829: 825: 379: 340: 273: 58: 32: 1406: 1338: 568: 779: 705: 616: 348: 1339:
David Gudeman (March 26, 2015), "The Seed7 Programming Language" (In Seed7 you can specify a syntax like this)
1147: 65: 1446:
A discussion where Seed7 is described as language where new syntax can actually be defined by language users
1360:- Homepage with FAQ, manual, screenshots, examples, library descriptions, benchmarks and a set of algorithms 761: 604: 588: 479:
via supplied libraries that provide a common interface to different operating systems and windowing systems.
899: 891: 685: 407: 387: 368: 225: 153: 145: 141: 133: 72: 1396: 858: 841: 753: 749: 624: 476: 431: 427: 403: 124: 1431: 1198: 1182: 907: 881:
The syntax definition uses the Seed7 Structured Syntax Description (S7SSD). A S7SSD statement like
733: 572: 415: 149: 1225:"The Quest for the Ultimate Cycle (includes a performance comparison between Python, Seed7 and C)" 54: 737: 452: 435: 285: 1206: 1202: 721: 499: 423: 261: 554: 1228: 765: 709: 693: 665: 268: 236: 1313: 1178: 821: 717: 560: 229: 160: 1416: 1450: 1174: 669: 390:
symbols. The implementation of Seed7 differs significantly from that of languages with
241: 1403: 1459: 213: 1392: 1271: 713: 620: 548: 526: 419: 79: 1260: 1296: 1158: 854: 571:
are not a hard-coded feature. Instead they are defined as abstract data type in
467: 391: 319: 221: 217: 208: 21: 1373: 1435: 1186: 817: 564: 513: 833: 729: 537: 1363: 1420: 1388:
explores the 3n+C extension of the Collatz Conjecture with Seed7 programs
1249: 801: 608: 344: 336: 1379: 1368: 1412: 934:
is a terminal symbol. The S7SSD does not distinguish between different
837: 809: 509: 813: 596: 584: 578: 352: 805: 681: 592: 487: 249: 1425: 299: 725: 697: 495: 491: 257: 253: 1355: 741: 483: 245: 15: 1397:
Statically linked Linux executables with GCJ, Seed7 and haXe
954:
operator for complex numbers is just a function definition:
1451:
Seed7 at "Fossies" - the Fresh Open Source Software Archive
1297:"Definition einer erweiterbaren höheren Programmiersprache" 557:
are written as compile time functions with type parameters.
1299:, Doctoral thesis Vienna University of Technology (1986).( 374:
designed by Thomas Mertes. It is syntactically similar to
1261:
A Transport Layer Security (TLS) library written in Seed7
1203:"Rigorous Methods for Software Construction and Analysis" 505:
Several programming language concepts are generalized:
660:Seed7 has many libraries, covering areas including 615:interfaces from the run-time library to generate a 326: 310: 294: 284: 267: 235: 207: 191: 169: 159: 123: 516:definitions take the form of constant definitions. 748:and more. These libraries reduce the need to use 938:. Instead it only knows one nonterminal symbol: 581:and interpreter are part of the runtime library. 902:: Binding of operands from left to right. With 623:. Compiled Seed7 programs can have comparable 1170: 1168: 8: 861:and several hundred pages of documentation. 118: 619:program, which is subsequently compiled to 117: 804:independent API. Programs can connect to 587:Unicode support. This avoids problems of 106:Learn how and when to remove this message 914:operator is defined. The syntax pattern 884:$ syntax expr: .(). + .() is -> 7; 1486:Extensible syntax programming languages 1376:from its main repository at SourceForge 1138: 918:is introduced and delimited with dots ( 1471:Statically typed programming languages 42:Please improve this article by adding 1501:Programming languages created in 2005 1476:Object-oriented programming languages 701: 449:User defined statements and operators 7: 1466:Multi-paradigm programming languages 778:Seed7 has its own implementation of 512:(which assign a name to a type) and 418:. It also supports features such as 372:general-purpose programming language 1432:A Seed7 package for openSUSE/Fedora 603:The Seed7 project includes both an 522:can execute user-defined functions. 14: 1146:Mertes, Thomas (12 August 2024). 668:, file manipulation, networking ( 547:Functions, which are executed at 1386:The Quest for the Ultimate Cycle 800:Seed7 provides a library with a 673: 551:, can be used to define objects. 457:Templates without special syntax 198:2024-08-12 / 20 days ago 20: 1496:Free compilers and interpreters 1314:"Coding Club: Presents - Seed7" 1223:Stadfeld, Paul (1 April 2010). 922:). Without dots the pattern is 1506:Software using the GPL license 1407:The Seed7 Programming Language 1382:- Contains many Seed7 examples 1148:"New Seed7 Release 2024-08-12" 472:May be interpreted or compiled 440:arbitrary-precision arithmetic 1: 1491:Free software programmed in C 1179:"Modern Extensible Languages" 690:Simple Mail Transfer Protocol 44:secondary or tertiary sources 1428:, provided by Brian Callahan 1364:Mirror of the Seed7 Homepage 930:is a nonterminal symbol and 887:specifies the syntax of the 1213:, Springer, 2010, page 166. 788:elliptic-curve cryptography 678:Hypertext Transfer Protocol 651:Default function parameters 175:; 19 years ago 1522: 826:Open Database Connectivity 740:, time and date handling, 1185:(October 2007), page 16 ( 636:Macros and a preprocessor 331: 318: 280:(for the runtime library) 203: 187: 1272:Database abstraction API 956: 796:Database abstraction API 780:Transport Layer Security 706:Common Gateway Interface 702:database independent API 674:Transport Layer Security 642:Manual memory management 520:Compile-time expressions 445:Major features include: 322:reference implementation 1481:Cross-platform software 782:. The library includes 950:The definition of the 686:File Transfer Protocol 639:Modules and namespaces 394:syntax and semantics. 31:relies excessively on 1380:Seed7 at Rosetta Code 680:(HTTP), HTTP Secure ( 664:, numeric functions, 464:and multiple dispatch 460:Object-oriented with 404:programming paradigms 1199:Abrial, Jean-Raymond 859:source lines of code 696:, pixmap and vector 544:and function result. 432:operator overloading 428:function overloading 1183:McMaster University 936:nonterminal symbols 869:Extension mechanism 648:Regular expressions 453:Abstract data types 402:Seed7 supports the 286:Filename extensions 170:First appeared 120: 1231:on 25 October 2013 1201:and Glässer, Uwe, 946:Semantic extension 894:. The right arrow 738:character encoding 436:exception handling 1211:978-3-642-11446-5 1181:, SQRL Report 47 877:Syntax definition 766:operating systems 645:Pointers and NULL 538:type descriptions 510:Type declarations 424:multiple dispatch 386:and user defined 362: 361: 209:Typing discipline 116: 115: 108: 90: 1513: 1419:, maintained by 1359: 1358: 1356:Official website 1341: 1336: 1330: 1329: 1327: 1325: 1310: 1304: 1295:Mertes, Thomas, 1293: 1287: 1280: 1274: 1269: 1263: 1258: 1252: 1247: 1241: 1240: 1238: 1236: 1227:. Archived from 1220: 1214: 1196: 1190: 1172: 1163: 1162: 1156: 1154: 1143: 1128: 1125: 1122: 1119: 1116: 1113: 1110: 1107: 1104: 1101: 1098: 1095: 1092: 1089: 1086: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1035: 1032: 1029: 1026: 1023: 1020: 1017: 1014: 1011: 1008: 1005: 1002: 999: 996: 993: 990: 987: 984: 981: 978: 975: 972: 969: 966: 963: 960: 953: 941: 933: 929: 925: 921: 917: 913: 905: 897: 890: 758:operating system 710:data compression 666:lexical analysis 631:Features omitted 306: 303: 301: 183: 181: 176: 161:Designed by 121: 111: 104: 100: 97: 91: 89: 48: 24: 16: 1521: 1520: 1516: 1515: 1514: 1512: 1511: 1510: 1456: 1455: 1426:An OpenBSD port 1369:Seed7 at GitHub 1354: 1353: 1350: 1345: 1344: 1337: 1333: 1323: 1321: 1312: 1311: 1307: 1294: 1290: 1281: 1277: 1270: 1266: 1259: 1255: 1250:Seed7 libraries 1248: 1244: 1234: 1232: 1222: 1221: 1217: 1197: 1193: 1173: 1166: 1152: 1150: 1145: 1144: 1140: 1135: 1130: 1129: 1126: 1123: 1120: 1117: 1114: 1111: 1108: 1105: 1102: 1099: 1096: 1093: 1090: 1087: 1084: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1036: 1033: 1030: 1027: 1024: 1021: 1018: 1015: 1012: 1009: 1006: 1003: 1000: 997: 994: 991: 988: 985: 982: 979: 976: 973: 970: 967: 964: 961: 958: 951: 948: 939: 931: 927: 923: 919: 915: 911: 903: 895: 888: 885: 879: 871: 850: 798: 776: 746:message digests 708:(CGI) support, 692:(SMTP), etc.), 658: 633: 627:to C programs. 591:encodings like 589:variable-length 540:can be used as 536:Type names and 533:, respectively. 412:object-oriented 400: 313:implementations 298: 199: 179: 177: 174: 138:object-oriented 112: 101: 95: 92: 49: 47: 41: 37:primary sources 25: 12: 11: 5: 1519: 1517: 1509: 1508: 1503: 1498: 1493: 1488: 1483: 1478: 1473: 1468: 1458: 1457: 1454: 1453: 1448: 1443: 1429: 1423: 1421:Pietro Cerutti 1413:A FreeBSD port 1410: 1400: 1393:Remo Laubacher 1389: 1383: 1377: 1374:Download Seed7 1371: 1366: 1361: 1349: 1348:External links 1346: 1343: 1342: 1331: 1320:. July 4, 2024 1305: 1288: 1275: 1264: 1253: 1242: 1215: 1191: 1187:alternate link 1175:Daniel Zingaro 1164: 1137: 1136: 1134: 1131: 957: 947: 944: 898:describes the 883: 878: 875: 870: 867: 849: 846: 797: 794: 775: 772: 657: 654: 653: 652: 649: 646: 643: 640: 637: 632: 629: 601: 600: 582: 576: 558: 552: 545: 534: 523: 517: 503: 502: 480: 473: 470: 465: 458: 455: 450: 399: 396: 360: 359: 329: 328: 324: 323: 316: 315: 308: 307: 296: 292: 291: 288: 282: 281: 271: 265: 264: 242:Cross-platform 239: 233: 232: 211: 205: 204: 201: 200: 197: 195: 193:Stable release 189: 188: 185: 184: 171: 167: 166: 163: 157: 156: 130:multi-paradigm 127: 114: 113: 96:September 2018 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 1518: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1487: 1484: 1482: 1479: 1477: 1474: 1472: 1469: 1467: 1464: 1463: 1461: 1452: 1449: 1447: 1444: 1441: 1437: 1433: 1430: 1427: 1424: 1422: 1418: 1417:see also here 1414: 1411: 1408: 1405: 1404:David Gudeman 1401: 1398: 1394: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1370: 1367: 1365: 1362: 1357: 1352: 1351: 1347: 1340: 1335: 1332: 1319: 1315: 1309: 1306: 1302: 1298: 1292: 1289: 1285: 1279: 1276: 1273: 1268: 1265: 1262: 1257: 1254: 1251: 1246: 1243: 1230: 1226: 1219: 1216: 1212: 1208: 1204: 1200: 1195: 1192: 1188: 1184: 1180: 1176: 1171: 1169: 1165: 1160: 1149: 1142: 1139: 1132: 955: 945: 943: 937: 926:. The symbol 909: 901: 900:associativity 893: 882: 876: 874: 868: 866: 862: 860: 856: 847: 845: 843: 839: 835: 831: 827: 823: 819: 815: 811: 807: 803: 795: 793: 791: 789: 785: 781: 773: 771: 769: 767: 763: 759: 755: 751: 747: 743: 739: 735: 731: 727: 723: 719: 715: 714:archive files 711: 707: 703: 699: 695: 691: 687: 683: 679: 675: 671: 667: 663: 655: 650: 647: 644: 641: 638: 635: 634: 630: 628: 626: 622: 618: 614: 610: 606: 598: 594: 590: 586: 583: 580: 577: 574: 570: 566: 562: 559: 556: 553: 550: 546: 543: 539: 535: 532: 528: 524: 521: 518: 515: 511: 508: 507: 506: 501: 497: 493: 489: 485: 481: 478: 474: 471: 469: 468:Static typing 466: 463: 459: 456: 454: 451: 448: 447: 446: 443: 441: 437: 433: 429: 425: 421: 417: 413: 409: 405: 397: 395: 393: 389: 385: 381: 377: 373: 370: 366: 358: 354: 350: 346: 342: 338: 334: 330: 327:Influenced by 325: 321: 317: 314: 309: 305: 297: 293: 289: 287: 283: 279: 275: 272: 270: 266: 263: 259: 255: 251: 247: 243: 240: 238: 234: 231: 227: 223: 219: 215: 212: 210: 206: 202: 196: 194: 190: 186: 172: 168: 165:Thomas Mertes 164: 162: 158: 155: 151: 147: 143: 139: 135: 131: 128: 126: 122: 110: 107: 99: 88: 85: 81: 78: 74: 71: 67: 64: 60: 57: –  56: 52: 51:Find sources: 45: 39: 38: 34: 29:This article 27: 23: 18: 17: 1434:, (see also 1334: 1322:. Retrieved 1317: 1308: 1291: 1278: 1267: 1256: 1245: 1233:. Retrieved 1229:the original 1218: 1194: 1157:– via 1151:. Retrieved 1141: 949: 886: 880: 872: 863: 851: 799: 792: 777: 770: 744:processing, 659: 621:machine code 602: 549:compile time 527:compile time 504: 475:Source code 444: 420:call by name 401: 364: 363: 302:.sourceforge 102: 93: 83: 76: 69: 62: 50: 30: 1159:SourceForge 855:precompiler 774:TLS library 676:(TLS/SSL), 625:performance 605:interpreter 482:Runs under 477:portability 320:open source 1460:Categories 1133:References 916:.(). + .() 842:SQL Server 818:PostgreSQL 762:processors 750:unportable 662:containers 613:reflection 462:interfaces 414:(OO), and 408:imperative 392:hard-coded 384:statements 369:extensible 290:.sd7, .s7i 226:nominative 154:reflective 146:structured 142:imperative 134:extensible 66:newspapers 33:references 1235:19 August 1153:16 August 834:InterBase 656:Libraries 573:libraries 565:hash maps 555:Templates 542:parameter 1402:Blog by 1391:Blog by 1324:July 22, 1301:Abstract 1284:Abstract 1109:summand2 1097:summand1 1073:summand2 1061:summand1 1004:summand2 983:summand1 908:priority 892:operator 830:Firebird 828:(ODBC), 802:database 754:hardware 694:graphics 609:compiler 531:run time 514:function 398:Features 388:operator 345:ALGOL 68 337:Modula-2 230:manifest 125:Paradigm 1318:YouTube 1034:complex 1022:complex 998:complex 977:complex 965:complex 924:() + () 910:of the 848:History 838:IBM Db2 810:MariaDB 688:(FTP), 670:sockets 569:structs 500:Windows 416:generic 295:Website 269:License 262:Windows 178: ( 150:generic 80:scholar 55:"Seed7" 1409:(2015) 1399:(2011) 1209:  1016:result 822:Oracle 814:SQLite 607:and a 597:UTF-16 585:UTF-32 579:Parser 561:Arrays 490:, Mac 376:Pascal 367:is an 333:Pascal 311:Major 218:strong 214:static 82:  75:  68:  61:  53:  1046:begin 1040:value 959:const 896:-> 806:MySQL 698:fonts 682:HTTPS 593:UTF-8 488:Linux 365:Seed7 300:seed7 250:Linux 119:Seed7 87:JSTOR 73:books 1440:here 1436:here 1326:2024 1237:2019 1207:ISBN 1155:2024 1124:func 1013:func 962:func 906:the 840:and 786:and 726:cpio 595:and 567:and 529:and 496:Unix 492:OS X 438:and 378:and 357:Java 304:.net 278:LGPL 258:Unix 254:OS X 222:safe 180:2005 173:2005 59:news 1438:or 1121:end 1085:sum 1049:sum 1028:sum 1019:var 784:AES 764:or 742:XML 736:), 734:rpm 722:zip 718:tar 684:), 484:BSD 380:Ada 353:C++ 341:Ada 274:GPL 246:BSD 35:to 1462:: 1415:/ 1395:: 1316:. 1205:, 1189:). 1177:, 1167:^ 1115:im 1103:im 1094::= 1091:im 1079:re 1067:re 1058::= 1055:re 1031:is 1010:is 995:in 974:in 942:. 940:() 928:() 836:, 832:, 824:, 820:, 816:, 812:, 808:, 790:. 768:. 756:, 732:, 730:ar 728:, 724:, 720:, 712:, 704:, 700:, 672:, 563:, 498:, 494:, 486:, 442:. 434:, 430:, 426:, 422:, 410:, 406:: 355:, 351:, 347:, 343:, 339:, 335:, 276:, 260:, 256:, 252:, 248:, 244:: 237:OS 228:, 224:, 220:, 216:, 152:, 148:, 144:, 140:, 136:, 132:: 46:. 1442:) 1328:. 1303:) 1286:) 1239:. 1161:. 1127:; 1118:; 1112:. 1106:+ 1100:. 1088:. 1082:; 1076:. 1070:+ 1064:. 1052:. 1043:; 1037:. 1025:: 1007:) 1001:: 992:( 989:+ 986:) 980:: 971:( 968:: 952:+ 932:+ 920:. 912:+ 904:7 889:+ 716:( 617:C 599:. 575:. 349:C 182:) 109:) 103:( 98:) 94:( 84:· 77:· 70:· 63:· 40:.

Index


references
primary sources
secondary or tertiary sources
"Seed7"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Paradigm
multi-paradigm
extensible
object-oriented
imperative
structured
generic
reflective
Designed by
Stable release
Typing discipline
static
strong
safe
nominative
manifest
OS
Cross-platform
BSD

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