1306:
1296:
1286:
1276:
29:
1156:
404:
type that represents a value being provided by an independent thread of execution. A thread that uses a future value will block on an attempt to access the value until the thread performing it has completed the computation. A related concept is also provided termed a
426:
strategy of
Standard ML. While Haskell uses the lazy model by default, Alice uses an eager evaluation model by default, needing an explicit programming statement for a computation to evaluate lazily.
806:
411:, allowing a thread to provide a future value that it will compute to another thread. Future and promise typed variables are used to implement data-flow synchronizing.
332:
138:
398:
in a number of ways that distinguish it from its predecessor. Alice provides concurrency features as part of the base language through the use of a
1346:
1351:
46:
93:
1300:
463:
Alice's remote procedure calling depends on the virtual machine, because it may send code to be computed from one computer to another.
65:
1336:
471:
Alice extends
Standard ML with several primitives for lazy evaluation and concurrency. For example, threads may be created using the
813:
72:
1331:
1290:
456:
Early versions of Alice ran on the Mozart
Programming System (Oz) virtual machine (VM), allowing interfacing between Alice and
79:
1341:
324:
840:
619:, it blocks until the thread is done with the computation. To exploit parallelism one could even define fib as follows:
61:
112:
328:
154:
1118:
971:
879:
475:
367:
50:
891:
479:
213:
1011:
86:
1247:
1106:
957:
868:
1073:
987:
936:
873:
822:
710:
457:
429:
The Alice implementation from
Saarland University uses the Simple Extensible Abstract Machine (SEAM)
371:
312:
308:
168:
1237:
438:
748:
1310:
977:
799:
264:
150:
39:
1112:
383:
336:
244:
158:
146:
142:
1164:
1092:
379:
375:
1275:
577:
will take a long time to compute. This computation can be performed in a separate thread by
16:
For the educational object-oriented programming system from
Carnegie Mellon University, see
1269:
611:
407:
400:
339:
133:
8:
845:
734:
355:
343:
184:
1178:
179:
1232:
998:
450:
423:
271:
259:
17:
786:
1227:
1078:
430:
419:
363:
1242:
1184:
1086:
252:
1190:
347:
1325:
920:
434:
248:
1208:
1202:
1196:
1064:
948:
1280:
925:
904:
446:
395:
359:
276:
239:
172:
730:
779:
287:
1098:
1040:
28:
1214:
1005:
831:
442:
1144:
1058:
1028:
982:
791:
415:
351:
1124:
1052:
1016:
885:
1155:
1130:
1046:
930:
862:
1034:
1022:
854:
418:
functional language, Alice provides facilities to allow a
752:
787:
Multiple publications about Alice ML and its concepts
53:. Unsourced material may be challenged and removed.
342:designed by the Programming Systems Laboratory at
478:. Consider the naive algorithm for computing the
1323:
807:
422:strategy in programs, unlike the traditional
814:
800:
615:. When an operation requires the value of
113:Learn how and when to remove this message
1172:
1347:Functional logic programming languages
1324:
1352:Programming languages created in 2000
795:
51:adding citations to reliable sources
22:
13:
821:
14:
1363:
771:
62:"Alice" programming language
1337:High-level programming languages
1305:
1304:
1295:
1294:
1285:
1284:
1274:
1154:
27:
38:needs additional citations for
1332:ML programming language family
1119:Logic for Computable Functions
741:
723:
1:
716:
362:, augmented with support for
609:is now bound to a so-called
7:
1342:Logic programming languages
704:
389:
10:
1368:
466:
15:
1256:
1163:
1152:
1072:
997:
946:
937:Standard ML of New Jersey
903:
853:
839:
830:
749:"Programming Systems Lab"
711:Oz (programming language)
307:
302:
282:
270:
258:
238:
234:
219:1.4 / May 3, 2007
212:
208:
190:
178:
164:
132:
1238:Christine Paulin-Mohring
621:
579:
484:
439:just-in-time compilation
1311:Category:Software:OCaml
384:constraint programming
380:remote procedure calls
221:; 17 years ago
196:; 24 years ago
1301:Category:Family:OCaml
376:distributed computing
1270:Open-source software
564:For large values of
340:programming language
47:improve this article
735:Saarland University
344:Saarland University
191:First appeared
185:Saarland University
129:
1291:Category:Family:ML
1179:Lennart Augustsson
194:June 16, 2000
127:
1319:
1318:
1233:Steven G. Johnson
1223:
1222:
1140:
1139:
999:Programming tools
967:
966:
755:on 5 October 2006
480:Fibonacci numbers
318:
317:
240:Typing discipline
123:
122:
115:
97:
1359:
1308:
1307:
1298:
1297:
1288:
1287:
1278:
1170:
1169:
1158:
1079:proof assistants
851:
850:
837:
836:
816:
809:
802:
793:
792:
783:
782:
780:Official website
765:
764:
762:
760:
751:. Archived from
745:
739:
738:
727:
700:
697:
694:
691:
688:
685:
682:
679:
676:
673:
670:
667:
664:
661:
658:
655:
652:
649:
646:
643:
640:
637:
634:
631:
628:
625:
618:
608:
601:
598:
595:
592:
589:
586:
583:
576:
569:
560:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
474:
451:x86 architecture
424:eager evaluation
298:
295:
293:
291:
289:
229:
227:
222:
204:
202:
197:
130:
126:
118:
111:
107:
104:
98:
96:
55:
31:
23:
18:Alice (software)
1367:
1366:
1362:
1361:
1360:
1358:
1357:
1356:
1322:
1321:
1320:
1315:
1273:
1252:
1228:Thierry Coquand
1219:
1159:
1150:
1136:
1077:
1074:Theorem provers
1068:
993:
963:
942:
899:
844:
841:Implementations
826:
820:
778:
777:
774:
769:
768:
758:
756:
747:
746:
742:
729:
728:
724:
719:
707:
702:
701:
698:
695:
692:
689:
686:
683:
680:
677:
674:
671:
668:
665:
662:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
616:
606:
603:
602:
599:
596:
593:
590:
587:
584:
581:
571:
565:
562:
561:
558:
555:
552:
549:
546:
543:
540:
537:
534:
531:
528:
525:
522:
519:
516:
513:
510:
507:
504:
501:
498:
495:
492:
489:
486:
472:
469:
437:, and features
431:virtual machine
420:lazy evaluation
392:
364:lazy evaluation
325:general-purpose
286:
230:
225:
223:
220:
200:
198:
195:
119:
108:
102:
99:
56:
54:
44:
32:
21:
12:
11:
5:
1365:
1355:
1354:
1349:
1344:
1339:
1334:
1317:
1316:
1314:
1265:
1263:= discontinued
1257:
1254:
1253:
1251:
1250:
1248:Simon Thompson
1245:
1243:Frank Pfenning
1240:
1235:
1230:
1224:
1221:
1220:
1218:
1212:
1206:
1200:
1194:
1188:
1185:Damien Doligez
1182:
1176:
1174:
1167:
1161:
1160:
1153:
1151:
1149:
1148:
1141:
1138:
1137:
1135:
1134:
1128:
1122:
1115:
1110:
1104:
1103:
1102:
1090:
1083:
1081:
1070:
1069:
1067:
1062:
1056:
1050:
1044:
1038:
1032:
1026:
1020:
1014:
1009:
1003:
1001:
995:
994:
992:
991:
985:
980:
975:
968:
965:
964:
962:
961:
954:
952:
944:
943:
941:
940:
934:
928:
923:
918:
909:
907:
901:
900:
898:
897:
896:
895:
889:
883:
877:
871:
859:
857:
848:
834:
828:
827:
819:
818:
811:
804:
796:
790:
789:
784:
773:
772:External links
770:
767:
766:
740:
721:
720:
718:
715:
714:
713:
706:
703:
622:
580:
485:
468:
465:
394:Alice extends
391:
388:
372:multithreading
333:multi-paradigm
316:
315:
305:
304:
300:
299:
284:
280:
279:
274:
268:
267:
265:Cross-platform
262:
256:
255:
242:
236:
235:
232:
231:
218:
216:
214:Stable release
210:
209:
206:
205:
192:
188:
187:
182:
176:
175:
166:
162:
161:
139:Multi-paradigm
136:
121:
120:
35:
33:
26:
9:
6:
4:
3:
2:
1364:
1353:
1350:
1348:
1345:
1343:
1340:
1338:
1335:
1333:
1330:
1329:
1327:
1313:
1312:
1303:
1302:
1293:
1292:
1283:
1282:
1277:
1272:
1271:
1266:
1264:
1261:
1258:
1255:
1249:
1246:
1244:
1241:
1239:
1236:
1234:
1231:
1229:
1226:
1225:
1216:
1213:
1211:(Extended ML)
1210:
1207:
1204:
1201:
1199:(Caml, OCaml)
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1175:
1171:
1168:
1166:
1162:
1157:
1146:
1143:
1142:
1132:
1129:
1126:
1123:
1121:
1120:
1116:
1114:
1111:
1108:
1105:
1100:
1097:
1096:
1094:
1091:
1088:
1085:
1084:
1082:
1080:
1075:
1071:
1066:
1063:
1060:
1057:
1054:
1051:
1048:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1013:
1010:
1007:
1004:
1002:
1000:
996:
989:
986:
984:
981:
979:
976:
973:
970:
969:
959:
956:
955:
953:
951:
950:
945:
938:
935:
932:
929:
927:
924:
922:
921:Concurrent ML
919:
916:
915:
911:
910:
908:
906:
902:
893:
890:
887:
884:
881:
878:
875:
872:
870:
867:
866:
864:
861:
860:
858:
856:
852:
849:
847:
842:
838:
835:
833:
829:
824:
817:
812:
810:
805:
803:
798:
797:
794:
788:
785:
781:
776:
775:
754:
750:
744:
736:
732:
726:
722:
712:
709:
708:
620:
614:
613:
605:The variable
578:
575:
568:
483:
481:
477:
464:
461:
459:
454:
452:
448:
444:
440:
436:
435:free software
432:
427:
425:
421:
417:
412:
410:
409:
403:
402:
397:
387:
385:
381:
377:
373:
369:
365:
361:
357:
353:
349:
345:
341:
338:
334:
330:
326:
322:
314:
310:
306:
303:Influenced by
301:
297:
292:.uni-saarland
285:
281:
278:
275:
273:
269:
266:
263:
261:
257:
254:
250:
246:
243:
241:
237:
233:
217:
215:
211:
207:
193:
189:
186:
183:
181:
177:
174:
170:
167:
163:
160:
156:
152:
148:
144:
140:
137:
135:
131:
125:
117:
114:
106:
103:February 2011
95:
92:
88:
85:
81:
78:
74:
71:
67:
64: –
63:
59:
58:Find sources:
52:
48:
42:
41:
36:This article
34:
30:
25:
24:
19:
1309:
1299:
1289:
1279:
1267:
1262:
1259:
1209:Don Sannella
1203:Robin Milner
1197:Xavier Leroy
1117:
1065:SLAM project
949:Dependent ML
947:
913:
912:
757:. Retrieved
753:the original
743:
725:
610:
604:
573:
566:
563:
470:
462:
455:
428:
413:
406:
399:
393:
320:
319:
124:
109:
100:
90:
83:
76:
69:
57:
45:Please help
40:verification
37:
1191:Gérard Huet
926:Extended ML
905:Standard ML
825:programming
447:native code
396:Standard ML
368:concurrency
360:Standard ML
348:Saarbrücken
173:Standard ML
151:distributed
1326:Categories
939:° (SML/NJ)
717:References
354:. It is a
337:functional
329:high-level
226:2007-05-03
201:2000-06-16
159:constraint
155:concurrent
147:functional
143:imperative
73:newspapers
1181:(Lazy ML)
1173:Designers
1165:Community
1099:HOL Light
1041:Marionnet
414:Like the
180:Developer
134:Paradigms
1215:Don Syme
1107:Isabelle
1006:Alt-Ergo
846:dialects
832:Software
759:8 August
705:See also
449:for the
443:bytecode
433:. It is
390:Overview
321:Alice ML
253:inferred
1260:Italics
1187:(OCaml)
1145:GeneWeb
1059:Semgrep
1029:Frama-C
983:MacroML
978:Lazy ML
972:Futhark
731:"Alice"
476:keyword
467:Example
416:Haskell
408:promise
356:dialect
352:Germany
283:Website
272:License
224: (
199: (
87:scholar
1193:(Caml)
1125:Matita
1053:Poplog
1017:Camlp4
1012:Astrée
892:Reason
886:JoCaml
733:. DE:
612:future
460:code.
401:future
382:) and
296:/alice
249:static
245:strong
165:Family
89:
82:
75:
68:
60:
1131:Twelf
1047:MTASC
931:MLton
914:Alice
863:OCaml
666:spawn
591:spawn
473:spawn
323:is a
128:Alice
94:JSTOR
80:books
1281:Book
1268:° =
1217:(F#)
1205:(ML)
1113:LEGO
1035:Haxe
1023:FFTW
855:Caml
761:2006
572:fib
445:and
378:via
374:and
66:news
1093:HOL
1087:Coq
958:ATS
869:Eff
687:fib
669:fib
657:fib
642:fib
627:fib
624:fun
594:fib
582:val
547:fib
529:fib
520:fib
505:fib
490:fib
487:fun
441:to
358:of
294:.de
290:.ps
288:www
277:MIT
49:by
1328::
1095:°
988:Ur
880:F#
874:F*
865:°
823:ML
699:);
693:n-
675:n-
570:,
559:);
553:n-
535:n-
482::
458:Oz
453:.
386:.
366:,
350:,
346:,
335:,
331:,
327:,
313:Oz
311:,
309:ML
260:OS
251:,
247:,
171::
169:ML
157:,
153:,
149:,
145:,
141::
1147:°
1133:°
1127:°
1109:°
1101:°
1089:°
1076:,
1061:°
1055:°
1049:°
1043:°
1037:°
1031:°
1025:°
1019:°
1008:°
990:°
974:°
960:°
933:°
917:°
894:°
888:°
882:°
876:°
843:,
815:e
808:t
801:v
763:.
737:.
696:2
690:(
684:+
681:)
678:1
672:(
663:=
660:n
654:|
651:1
648:=
645:1
639:|
636:0
633:=
630:0
617:x
607:x
600:;
597:n
588:=
585:x
574:n
567:n
556:2
550:(
544:+
541:)
538:1
532:(
526:=
523:n
517:|
514:1
511:=
508:1
502:|
499:0
496:=
493:0
370:(
228:)
203:)
116:)
110:(
105:)
101:(
91:·
84:·
77:·
70:·
43:.
20:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.