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