293:: a thinking tool to enable the clear and concise expression of concepts in parallel programming. This is in contrast with implementation languages which are often complicated with machine details and historical conventions. It was created to address the need at the time for a parallel publication language. Arguably, few languages today are expressive and concise enough to be used as thinking tools.
25:
1873:
Free Pascal also needs a solution to the above "clock" problem (On windows, just declare gettickcount as external with "clock" as name). Further, the reset/rewrites that are marked as non-standard in the source code must be changed to assign/reset (or rewrite) pairs. (GPC probably only errors on this
1215:
between parallel processes, due to variable updates or channel conflicts. If processes sharing a variable, update it at unpredictable times, the resulting behaviour of the program is time-dependent. Similarly, if two processes simultaneously try to send or receive on a shared channel, the resulting
469:
to detect as many cases as possible in which the language concepts break down and produce meaningless results. SuperPascal imposes restrictions on the use of variables that enable a single-pass compiler to check that parallel processes are disjoint, even if the processes use procedures with global
1826:
The SuperPascal software can be accessed freely from the Brinch Hansen
Archive. It consists of a compiler and interpreter, which are both written in normal, sequential Pascal (ISO Level 1 standard Pascal). This is supported by the GNU Pascal compiler and newer versions of the
1219:
SuperPascal enforces certain restrictions on the use of variables and communication to minimise or eliminate time-dependent errors. With variables, a simple rule is required: parallel processes can only update disjoint sets of variables. For example, in a
1306:
communication structure with 100 nodes. A master node sends an integer token to the first node, this is then passed along the pipeline and incremented at each step, and finally received by the master node and printed out.
2244:, Christopher Long's modified version of the original SuperPascal implementation; compiles and runs under modern Free Pascal; program execution is faster than Perl 5 or 6, nearly as fast as Python 3
2269:
332:
The requirements of SuperPascal were based on the experience gained by Hansen over three years in developing a set of model parallel programs, which implemented methods for common problems in
514:
Parallel processes communicate by sending typed messages through channels created dynamically. Channels are not variables in themselves, but are identified by a unique value known as the
2234:, Brinch Hansen Archive, a set of his papers and the SuperPascal software which can be downloaded in a compressed file; contains the full language specification and useful documentation.
2262:
2644:
612:, must both be of the same type as the first channel argument. The following example shows the use of these functions in a process that receives a value from the
309:, extending it with features for safe and efficient concurrency. Pascal itself was used heavily as a publication language in the 1970s. It was used to teach
2639:
2255:
470:
variables, eliminating time-dependent errors. Several features in Pascal were ambiguous or insecure and were omitted from SuperPascal, such as labels and
731:
occurs when two parallel processes attempt to communicate through the same channel and the output expression and input variable are of different types.
2634:
2629:
427:
of parallel processes connected by communication channels. These configurations may be defined iteratively or recursively and created dynamically.
2483:
2096:
251:
2170:
2068:
2039:
1232:
variable (which can't be updated) may be used by multiple processes. In some circumstances, when a variable such as an array is the
714:
582:. A mixed type channel is restricted to transmitting only the specified types, in this case boolean and integer values. The channel
374:
108:
46:
39:
2559:
2365:
2310:
2589:
2370:
2295:
2278:
306:
255:
153:
89:
2359:
2325:
752:
747:
483:
267:
263:
61:
2513:
1292:
194:
2583:
2554:
68:
35:
2498:
2523:
1874:
if you enable strict flags), and the C preprocessor commands #include 'xx' must be changed to {$ include 'xx'}.
1288:
493:
statement denotes that the fixed number of statements it contains must be executed in parallel. For example:
75:
2503:
2488:
2410:
310:
140:
136:
456:
386:
368:
357:
57:
503:
statement denotes the parallel execution of a statement by a dynamic number of processes, for example:
2115:(May 1993), "Model programs for computational science: A programming methodology for multicomputers",
1850:
function can be used (which is supported by the GNU Pascal compiler), by declaring a variable of type
724:
occurs when two parallel processes both attempt to send or receive on the same channel simultaneously.
2287:
431:
397:
362:
282:
279:
132:
127:
336:. This experimentation allowed him to make the following conclusions about the future of scientific
1252:
326:
2541:
2508:
2384:
337:
2355:
2320:
2166:
2158:
2133:
2112:
2092:
2084:
2064:
2035:
2009:
318:
286:
259:
165:
2607:
2446:
2405:
1846:
function (line 1786), which is used to obtain the system time. Instead, the
Extended Pascal
333:
322:
160:
486:
2, with the added generality of dynamic process arrays and recursive parallel processes.
82:
2426:
2057:
2028:
466:
2623:
2533:
2436:
2390:
2305:
2300:
2247:
763:
statements to create parallel recursive processes. The following example shows how a
302:
150:
2518:
2441:
2431:
1236:
of multiple parallel processes, and the programmer knows its element-wise usage is
1302:
The following is an example of a complete SuperPascal program, which constructs a
408:
These then led to the following requirements for a parallel publication language:
2461:
352:
process configurations. This was based on his experience programming networks of
2451:
2380:
1828:
225:
220:
24:
2493:
2456:
2395:
2186:
353:
434:
to check that parallel processes do not interfere in a time-dependent manner.
2375:
401:
2237:
737:
occurs when a send or receive operation waits indefinitely for completion.
404:
works, it can easily be implemented in a parallel implementation language.
2601:
2595:
2577:
2340:
314:
1255:
language, with the same basic syntax as Pascal. A program consists of a
2400:
2315:
1835:
switch, with the following respective small modifications to the code.
1240:, then the disjointness restriction may be overridden with a preceding
2241:
2014:
SuperPascal: a publication language for parallel scientific computing
317:
and programming languages. Hansen had earlier developed the language
2571:
420:. The extensions should be in the spirit of the standard language.
1228:
variable cannot be updated by more than a single process, but an
710:
send(channel, e1, e2,..., en); receive(channel, v1, v2,..., vn)
707:
can both take multiple input and output arguments respectively:
412:
The language should extend a widely used standard language with
2251:
604:
statements. The expression or variable providing the value for
2475:
18:
321:, one of the earliest concurrent languages for the design of
2205:
443:
The key ideas in the design of SuperPascal was to provide a
2229:
236:
522:. A channel is declared, for example, by the declaration
982:
Another example is the recursive definition of a process
1880:{ Time code for readtime in Freepascal on unix systems }
1199:
The most difficult aspect of concurrent programming is
381:
Regular problems in computational science require only
392:
Parallel scientific algorithms can be developed in an
313:
practices and featured in text books, for example, on
482:
The parallel features of SuperPascal are a subset of
447:
programming, with abstract concepts for parallelism.
385:, that is, expecting communication from a particular
2532:
2474:
2419:
2348:
2339:
2286:
245:
231:
219:
193:
171:
159:
146:
126:
2056:
2027:
2189:(1974). "Hints on programming language design".
2136:(1994). "The programming language SuperPascal".
1275:procedure. Functions and procedures consists of
767:of processes can be recursively defined using a
596:Message communication is then achieved with the
423:The language should make it possible to program
474:statements, pointers and forward declarations.
2063:. Upper Saddle River, NJ, USA: Prentice-Hall.
2034:. Upper Saddle River, NJ, USA: Prentice-Hall.
2263:
8:
2153:
2151:
2128:
2126:
2004:
2002:
1287:by semicolons, as opposed to languages like
1211:errors. Time-dependent errors are caused by
506:forall i := 0 to 10 do something()
348:, allowing programmers to think in terms of
121:
1854:, setting that with the current time using
2345:
2270:
2256:
2248:
465:in that it should enable its compiler and
120:
109:Learn how and when to remove this message
2163:The invention of concurrent programming
2089:The Architecture of Concurrent Programs
1998:
574:which defines a new (mixed) type named
496:parallel source() | sink() end
45:Please improve this article by adding
2645:Programming languages created in 1993
7:
2117:Concurrency: Practice and Experience
400:computer. When it is established an
2059:Principles of Programming Languages
2640:Pascal programming language family
578:and a variable of this type named
344:Future parallel computers will be
252:Communicating sequential processes
14:
2138:Software: Practice and Experience
1801:'The resulting value is '
2635:Procedural programming languages
2630:Concurrent programming languages
755:procedures can be combined with
717:communication errors can occur:
23:
2560:Comparison of Pascal and Delphi
1958:{ A nonstandard function reads
616:channel and outputs it on the
1:
2165:. New York: Springer-Verlag.
2030:Structured System Programming
430:The language should enable a
356:, which were general-purpose
47:secondary or tertiary sources
1279:, where a block is a set of
748:Recursion (computer science)
394:elegant publication language
2279:Pascal programming language
2206:"Per Brinch Hansen Archive"
2204:Hayden, C.C. (2008-06-11).
2191:Computer System Reliability
1831:compiler (2.7.1+) with the
1261:global variable definitions
389:, rather than from several.
202:; 31 years ago
177:; 31 years ago
2661:
2555:Comparison of Pascal and C
1961:the processor time in ms }
1216:effect is time-dependent.
745:
602:receive(channel, variable)
510:Channels and communication
454:
2550:
414:deterministic parallelism
383:deterministic parallelism
250:
215:
189:
2524:Visual Component Library
1877:
1309:
988:
773:
622:
524:
425:arbitrary configurations
360:able to be connected in
301:SuperPascal is based on
2055:Tennent, R. D. (1981).
1922:'FPC_SYSC_TIME'
305:'s sequential language
297:History and development
289:. It was designed as a
2504:Object Windows Library
1842:uses the non-standard
608:, and the variable in
586:is initialised by the
311:structured programming
34:relies excessively on
746:Further information:
457:Defensive programming
455:Further information:
418:message communication
1247:Structure and syntax
1207:behaviour caused by
1195:Interference control
598:send(channel, value)
518:, which are held by
432:single-pass compiler
291:publication language
283:programming language
280:concurrent computing
16:Programming language
2026:Welsh, Jim (1980).
172:First appeared
123:
2542:Pascal MicroEngine
2119:, pp. 407–423
2010:Hansen, Per Brinch
1858:and assigning the
1838:For GPC, the file
1271:definitions and a
742:Parallel recursion
729:message type error
722:Channel contention
338:parallel computing
278:is an imperative,
2617:
2616:
2470:
2469:
2321:Concurrent Pascal
2091:. Prentice-Hall.
1295:, where they are
1283:. Statements are
1251:SuperPascal is a
520:channel variables
516:channel reference
329:control systems.
323:operating systems
319:Concurrent Pascal
287:Per Brinch Hansen
273:
272:
260:Concurrent Pascal
221:Typing discipline
166:Per Brinch Hansen
119:
118:
111:
93:
2652:
2608:Component Pascal
2568:
2447:Microsoft Pascal
2406:Pic Micro Pascal
2346:
2272:
2265:
2258:
2249:
2233:
2232:
2230:Official website
2216:
2215:
2213:
2212:
2201:
2195:
2194:
2183:
2177:
2176:
2155:
2146:
2145:
2130:
2121:
2120:
2109:
2103:
2102:
2081:
2075:
2074:
2062:
2052:
2046:
2045:
2033:
2023:
2017:
2016:
2006:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1869:
1866:to the variable
1865:
1861:
1857:
1853:
1849:
1845:
1841:
1834:
1817:
1814:
1811:
1808:
1805:
1802:
1799:
1796:
1793:
1790:
1787:
1784:
1781:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1469:
1466:
1463:
1460:
1457:
1454:
1451:
1448:
1445:
1442:
1439:
1436:
1433:
1430:
1427:
1424:
1421:
1418:
1415:
1412:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1385:
1382:
1379:
1376:
1373:
1370:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1253:block structured
1242:
1223:
1205:non-reproducible
1190:
1187:
1184:
1181:
1178:
1175:
1172:
1169:
1166:
1163:
1160:
1157:
1154:
1151:
1148:
1145:
1142:
1139:
1136:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1106:
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1052:
1049:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
978:
975:
972:
969:
966:
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
852:
849:
846:
843:
840:
837:
834:
831:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
770:
762:
758:
706:
702:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
611:
607:
603:
599:
589:
570:
567:
564:
561:
558:
555:
552:
549:
546:
543:
540:
537:
534:
531:
528:
502:
492:
473:
396:and tested on a
350:problem-oriented
334:computer science
241:
238:
210:
208:
203:
185:
183:
178:
161:Designed by
124:
114:
107:
103:
100:
94:
92:
51:
27:
19:
2660:
2659:
2655:
2654:
2653:
2651:
2650:
2649:
2620:
2619:
2618:
2613:
2566:
2546:
2528:
2466:
2415:
2335:
2282:
2276:
2228:
2227:
2224:
2219:
2210:
2208:
2203:
2202:
2198:
2187:Hoare, C. A. R.
2185:
2184:
2180:
2173:
2157:
2156:
2149:
2132:
2131:
2124:
2111:
2110:
2106:
2099:
2083:
2082:
2078:
2071:
2054:
2053:
2049:
2042:
2025:
2024:
2020:
2008:
2007:
2000:
1996:
1991:
1990:
1987:
1984:
1981:
1978:
1975:
1972:
1969:
1966:
1963:
1960:
1957:
1954:
1951:
1948:
1945:
1942:
1939:
1936:
1933:
1930:
1927:
1924:
1921:
1918:
1915:
1912:
1909:
1906:
1903:
1900:
1897:
1894:
1891:
1888:
1885:
1882:
1879:
1875:
1867:
1863:
1859:
1855:
1851:
1847:
1843:
1839:
1832:
1824:
1819:
1818:
1815:
1812:
1809:
1806:
1803:
1800:
1797:
1794:
1791:
1788:
1785:
1782:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1644:
1641:
1638:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1467:
1464:
1461:
1458:
1455:
1452:
1449:
1446:
1443:
1440:
1437:
1434:
1431:
1428:
1425:
1422:
1419:
1416:
1413:
1410:
1407:
1404:
1401:
1398:
1395:
1392:
1389:
1386:
1383:
1380:
1377:
1374:
1371:
1368:
1365:
1362:
1359:
1356:
1353:
1350:
1347:
1344:
1341:
1338:
1335:
1332:
1329:
1326:
1323:
1320:
1317:
1314:
1311:
1299:by semicolons.
1249:
1241:
1221:
1197:
1192:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1140:
1137:
1134:
1131:
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:
980:
979:
976:
973:
970:
967:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
922:
919:
916:
913:
910:
907:
904:
901:
898:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
859:
856:
853:
850:
847:
844:
841:
838:
835:
832:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
768:
760:
756:
750:
744:
711:
704:
700:
697:
696:
693:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
648:
645:
642:
639:
636:
633:
630:
627:
624:
609:
605:
601:
597:
594:
587:
572:
571:
568:
565:
562:
559:
556:
553:
550:
547:
544:
541:
538:
535:
532:
529:
526:
512:
507:
500:
497:
490:
480:
471:
461:SuperPascal is
459:
453:
441:
346:general-purpose
299:
235:
211:
206:
204:
201:
181:
179:
176:
115:
104:
98:
95:
52:
50:
44:
40:primary sources
28:
17:
12:
11:
5:
2658:
2656:
2648:
2647:
2642:
2637:
2632:
2622:
2621:
2615:
2614:
2612:
2611:
2605:
2599:
2593:
2587:
2581:
2575:
2569:
2563:
2562:
2557:
2551:
2548:
2547:
2545:
2544:
2538:
2536:
2530:
2529:
2527:
2526:
2521:
2516:
2511:
2506:
2501:
2496:
2491:
2486:
2480:
2478:
2472:
2471:
2468:
2467:
2465:
2464:
2459:
2454:
2449:
2444:
2439:
2434:
2429:
2427:Virtual Pascal
2423:
2421:
2417:
2416:
2414:
2413:
2408:
2403:
2398:
2393:
2388:
2378:
2373:
2368:
2363:
2352:
2350:
2343:
2337:
2336:
2334:
2333:
2328:
2323:
2318:
2313:
2308:
2303:
2298:
2292:
2290:
2284:
2283:
2277:
2275:
2274:
2267:
2260:
2252:
2246:
2245:
2235:
2223:
2222:External links
2220:
2218:
2217:
2196:
2178:
2171:
2159:Hansen, Brinch
2147:
2134:Hansen, Brinch
2122:
2113:Hansen, Brinch
2104:
2098:978-0130446282
2097:
2085:Hansen, Brinch
2076:
2069:
2047:
2040:
2018:
1997:
1995:
1992:
1878:
1823:
1822:Implementation
1820:
1310:
1248:
1245:
1209:time-dependent
1196:
1193:
989:
774:
743:
740:
739:
738:
732:
725:
713:The following
709:
699:The functions
623:
592:
525:
511:
508:
505:
495:
479:
476:
467:runtime system
452:
449:
440:
437:
436:
435:
428:
421:
406:
405:
390:
379:
298:
295:
271:
270:
248:
247:
243:
242:
233:
229:
228:
223:
217:
216:
213:
212:
199:
197:
195:Stable release
191:
190:
187:
186:
173:
169:
168:
163:
157:
156:
148:
144:
143:
130:
117:
116:
31:
29:
22:
15:
13:
10:
9:
6:
4:
3:
2:
2657:
2646:
2643:
2641:
2638:
2636:
2633:
2631:
2628:
2627:
2625:
2609:
2606:
2603:
2600:
2597:
2594:
2591:
2588:
2585:
2582:
2579:
2576:
2573:
2570:
2565:
2564:
2561:
2558:
2556:
2553:
2552:
2549:
2543:
2540:
2539:
2537:
2535:
2534:Microcomputer
2531:
2525:
2522:
2520:
2517:
2515:
2512:
2510:
2507:
2505:
2502:
2500:
2497:
2495:
2492:
2490:
2487:
2485:
2482:
2481:
2479:
2477:
2473:
2463:
2460:
2458:
2455:
2453:
2450:
2448:
2445:
2443:
2440:
2438:
2437:Borland Kylix
2435:
2433:
2430:
2428:
2425:
2424:
2422:
2418:
2412:
2409:
2407:
2404:
2402:
2399:
2397:
2394:
2392:
2391:PascalABC.NET
2389:
2386:
2382:
2379:
2377:
2374:
2372:
2369:
2367:
2364:
2361:
2357:
2354:
2353:
2351:
2347:
2344:
2342:
2338:
2332:
2329:
2327:
2324:
2322:
2319:
2317:
2314:
2312:
2309:
2307:
2306:Pascal Script
2304:
2302:
2301:Object Pascal
2299:
2297:
2294:
2293:
2291:
2289:
2285:
2280:
2273:
2268:
2266:
2261:
2259:
2254:
2253:
2250:
2243:
2239:
2236:
2231:
2226:
2225:
2221:
2207:
2200:
2197:
2192:
2188:
2182:
2179:
2174:
2172:0-387-95401-5
2168:
2164:
2160:
2154:
2152:
2148:
2143:
2139:
2135:
2129:
2127:
2123:
2118:
2114:
2108:
2105:
2100:
2094:
2090:
2086:
2080:
2077:
2072:
2070:0-13-709873-1
2066:
2061:
2060:
2051:
2048:
2043:
2041:0-13-854562-6
2037:
2032:
2031:
2022:
2019:
2015:
2011:
2005:
2003:
1999:
1993:
1876:
1871:
1862:field of the
1836:
1830:
1821:
1308:
1305:
1300:
1298:
1294:
1290:
1286:
1282:
1278:
1274:
1270:
1266:
1262:
1258:
1254:
1246:
1244:
1239:
1235:
1231:
1227:
1217:
1214:
1210:
1206:
1202:
1201:unpredictable
1194:
987:
985:
772:
766:
754:
749:
741:
736:
733:
730:
726:
723:
720:
719:
718:
716:
708:
621:
619:
615:
591:
585:
581:
577:
523:
521:
517:
509:
504:
494:
487:
485:
477:
475:
468:
464:
458:
450:
448:
446:
438:
433:
429:
426:
422:
419:
415:
411:
410:
409:
403:
399:
395:
391:
388:
384:
380:
377:
376:
371:
370:
365:
364:
359:
355:
351:
347:
343:
342:
341:
339:
335:
330:
328:
324:
320:
316:
312:
308:
304:
303:Niklaus Wirth
296:
294:
292:
288:
285:developed by
284:
281:
277:
269:
265:
261:
257:
253:
249:
246:Influenced by
244:
240:
237:brinch-hansen
234:
230:
227:
224:
222:
218:
214:
198:
196:
192:
188:
174:
170:
167:
164:
162:
158:
155:
152:
149:
145:
142:
138:
134:
131:
129:
125:
113:
110:
102:
91:
88:
84:
81:
77:
74:
70:
67:
63:
60: –
59:
58:"SuperPascal"
55:
54:Find sources:
48:
42:
41:
37:
32:This article
30:
26:
21:
20:
2519:Turbo Vision
2442:Turbo Pascal
2432:Apple Pascal
2420:Discontinued
2330:
2209:. Retrieved
2199:
2190:
2181:
2162:
2141:
2137:
2116:
2107:
2088:
2079:
2058:
2050:
2029:
2021:
2013:
1872:
1856:getTimeStamp
1848:getTimeStamp
1837:
1825:
1303:
1301:
1296:
1284:
1280:
1276:
1272:
1268:
1264:
1260:
1256:
1250:
1237:
1233:
1229:
1225:
1224:statement a
1218:
1213:interference
1212:
1208:
1204:
1200:
1198:
983:
981:
764:
751:
734:
728:
721:
712:
698:
617:
613:
595:
583:
579:
575:
573:
519:
515:
513:
498:
488:
481:
462:
460:
444:
442:
424:
417:
413:
407:
393:
382:
373:
367:
361:
349:
345:
331:
300:
290:
275:
274:
105:
96:
86:
79:
72:
65:
53:
33:
2452:UCSD Pascal
2381:Free Pascal
2331:SuperPascal
2238:superpascal
1840:interpret.p
1829:Free Pascal
1243:statement.
771:statement.
590:statement:
478:Parallelism
354:transputers
276:SuperPascal
200:1 / 1993
122:SuperPascal
2624:Categories
2567:Related to
2494:FireMonkey
2462:Pascal/MT+
2457:JRT Pascal
2396:GNU Pascal
2371:VSI Pascal
2211:2020-03-03
2193:: 505–534.
2144:: 399–406.
1994:References
1297:terminated
1281:statements
1230:expression
398:sequential
375:hypercubes
358:processors
141:structured
137:imperative
133:concurrent
69:newspapers
36:references
2376:IP Pascal
2341:Compilers
1928:procedure
1864:TimeStamp
1852:TimeStamp
1504:procedure
1393:procedure
1285:separated
1269:procedure
991:procedure
776:procedure
753:Recursive
402:algorithm
327:real-time
315:compilers
99:June 2018
2602:Oberon-2
2596:Modula-3
2578:Modula-2
2509:OpenWire
2288:Dialects
2161:(1977).
2087:(1977).
2012:(1993),
1931:readtime
1916:external
1883:Function
1726:parallel
1315:pipeline
1304:pipeline
1265:function
1238:disjoint
1222:parallel
1090:parallel
905:pipeline
875:parallel
779:pipeline
769:parallel
765:pipeline
757:parallel
735:Deadlock
593:open(c)
491:parallel
451:Security
439:Features
128:Paradigm
2401:Turbo51
2385:Lazarus
2366:Oxygene
2360:history
2349:Current
2316:Clascal
2311:Oxygene
1946:integer
1910:integer
1901:integer
1795:writeln
1771:receive
1576:integer
1549:channel
1525:channel
1453:receive
1444:integer
1426:channel
1408:integer
1387:integer
1375:channel
1351:integer
1339:channel
1312:program
1042:channel
1018:channel
1006:integer
833:channel
815:channel
797:integer
715:runtime
705:receive
658:receive
640:channel
610:receive
576:channel
566:channel
548:integer
542:boolean
530:channel
387:channel
232:Website
205: (
180: (
83:scholar
2610:(1991)
2604:(1991)
2598:(1988)
2592:(1986)
2590:Oberon
2586:(1983)
2580:(1977)
2574:(1958)
2356:Delphi
2296:Pascal
2281:family
2242:GitHub
2169:
2095:
2067:
2038:
1970:fptime
1886:FpTime
1860:Second
1750:create
1651:forall
1507:create
1277:blocks
1257:header
1234:target
1226:target
1186:bottom
1153:bottom
1012:bottom
929:middle
896:middle
866:middle
827:middle
761:forall
652:number
501:forall
463:secure
445:secure
363:arrays
307:Pascal
256:Pascal
226:Strong
154:Pascal
147:Family
85:
78:
71:
64:
56:
2572:ALGOL
2326:Joyce
2142:24, 5
1955:begin
1844:clock
1833:-Miso
1807:value
1783:value
1777:right
1762:right
1717:right
1702:begin
1603:right
1582:begin
1543:array
1519:right
1486:value
1480:right
1465:value
1450:begin
1438:value
1420:right
1381:value
1369:right
1321:const
1165:right
1138:right
1126:depth
1099:depth
1081:right
1066:begin
1054:depth
1048:begin
1036:right
1000:depth
968:right
935:right
857:begin
839:begin
809:right
685:right
634:right
620:one.
618:right
484:occam
369:trees
268:occam
264:Joyce
151:Wirth
90:JSTOR
76:books
2167:ISBN
2093:ISBN
2065:ISBN
2036:ISBN
1919:name
1895:tloc
1756:left
1735:left
1729:send
1711:left
1705:open
1672:node
1636:open
1591:left
1534:type
1513:left
1474:send
1459:left
1414:left
1396:node
1363:left
1336:type
1293:Java
1273:main
1180:leaf
1177:else
1159:left
1147:root
1120:tree
1111:left
1093:tree
1075:left
1069:open
1063:then
1057:>
1030:left
994:tree
984:tree
962:left
950:node
947:else
890:left
878:node
860:open
854:then
848:<
803:left
759:and
703:and
701:send
679:send
664:left
628:left
614:left
606:send
600:and
588:open
527:type
472:goto
416:and
325:and
239:.net
207:1993
182:1993
175:1993
62:news
2584:Ada
2514:RTL
2499:LCL
2489:FCL
2484:CLX
2476:API
2411:ACK
2240:on
1985:end
1937:var
1892:var
1813:end
1789:end
1696:end
1666:len
1624:len
1609:for
1564:row
1555:var
1537:row
1498:end
1435:var
1360:var
1330:100
1324:len
1291:or
1267:or
1203:or
1174:end
1171:end
1027:var
974:end
956:min
944:end
941:end
923:max
911:min
884:min
851:max
845:min
824:var
791:max
785:min
625:var
557:var
372:or
38:to
2626::
2150:^
2140:.
2125:^
2001:^
1967::=
1870:.
1669:do
1663:to
1657::=
1633:do
1621:to
1615::=
1600::=
1588::=
1546:of
1263:,
1259:,
1051:if
986::
842:if
727:A
499:A
489:A
366:,
340::
266:,
262:,
258:,
254:,
139:,
135:,
49:.
2387:)
2383:(
2362:)
2358:(
2271:e
2264:t
2257:v
2214:.
2175:.
2101:.
2073:.
2044:.
1988:;
1982:;
1979:)
1976:t
1973:(
1964:t
1952:;
1949:)
1943::
1940:t
1934:(
1925:;
1913:;
1907::
1904:)
1898::
1889:(
1868:t
1816:.
1810:)
1804:,
1798:(
1792:;
1786:)
1780:,
1774:(
1768:|
1765:)
1759:,
1753:(
1747:|
1744:)
1741:0
1738:,
1732:(
1723:;
1720:)
1714:,
1708:(
1699:;
1693:)
1690:c
1687:,
1684:c
1681:,
1678:i
1675:(
1660:1
1654:i
1648:;
1645:)
1642:c
1639:(
1630:1
1627:-
1618:1
1612:i
1606:;
1597:c
1594:;
1585:c
1579:;
1573::
1570:i
1567:;
1561::
1558:c
1552:;
1540:=
1531:;
1528:)
1522::
1516:,
1510:(
1501:;
1495:)
1492:1
1489:+
1483:,
1477:(
1471:;
1468:)
1462:,
1456:(
1447:;
1441::
1432:;
1429:)
1423::
1417:,
1411:;
1405::
1402:i
1399:(
1390:;
1384::
1378:;
1372::
1366:,
1357:;
1354:)
1348:(
1345:*
1342:=
1333:;
1327:=
1318:;
1289:C
1189:)
1183:(
1168:)
1162:,
1156:,
1150:(
1144:|
1141:)
1135:,
1132:1
1129:-
1123:(
1117:|
1114:)
1108:,
1105:1
1102:-
1096:(
1087:;
1084:)
1078:,
1072:(
1060:0
1045:;
1039::
1033:,
1024:;
1021:)
1015::
1009:,
1003::
997:(
977:;
971:)
965:,
959:,
953:(
938:)
932:,
926:,
920:,
917:1
914:+
908:(
902:|
899:)
893:,
887:,
881:(
872:;
869:)
863:(
836:;
830::
821:;
818:)
812::
806:,
800:;
794::
788:,
782:(
694:)
691:a
688:,
682:(
676:;
673:)
670:a
667:,
661:(
655:;
649::
646:a
643:;
637::
631:,
584:c
580:c
569:;
563::
560:c
554:;
551:)
545:,
539:(
536:*
533:=
378:.
209:)
184:)
112:)
106:(
101:)
97:(
87:·
80:·
73:·
66:·
43:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.