Last update: Sat Jan 6 02:03:49 MST 2018
Top |
Symbols |
Math |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
BibTeX entry
@Article{Jones:1989:FPO,
author = "S. B. Jones and A. F. Sinclair",
title = "Functional Programming and Operating Systems",
journal = j-COMP-J,
volume = "32",
number = "2",
pages = "162--174",
month = apr,
year = "1989",
CODEN = "CMPJA6",
DOI = "https://doi.org/10.1093/comjnl/32.2.162",
ISSN = "0010-4620 (print), 1460-2067 (electronic)",
ISSN-L = "0010-4620",
bibdate = "Tue Dec 4 14:48:26 MST 2012",
bibsource = "Compendex database;
http://comjnl.oxfordjournals.org/content/32/2.toc;
http://www.math.utah.edu/pub/tex/bib/compj1980.bib;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/;
Misc/Functional.bib; Misc/IMMD_IV.bib",
URL = "http://comjnl.oxfordjournals.org/content/32/2/162.full.pdf+html;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/162.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/163.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/164.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/165.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/166.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/167.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/168.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/169.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/170.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/171.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/172.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/173.tif;
http://www3.oup.co.uk/computer_journal/hdb/Volume_32/Issue_02/tiff/174.tif",
abstract = "There is a large class of programming problems to
which, at first sight, functional programming does not
seem suited: interactive programs and programs which
must access external resources such as file stores or
communications systems. We take operating systems as
the archetype of this class of problems. We show how
the lazy evaluation of functional programs, in
particular lazily evaluated infinite lists, or streams,
can be exploited to write interactive programs. This
extends quite naturally to a software design paradigm
comprising processes and networks, to the control of
peripheral devices, and hence to the design of
operating systems. We present a design for a simple,
single user, multiprogramming operating system. This
demonstrates workable solutions to operating system
structuring, to low level device interfacing, to high
level application program interfacing, and to resource
management, We examine the paradigm illustrated with
reference to alternative approaches which have been
proposed.",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Stirling Univ.",
affiliationaddress = "Stirling, Scotl",
classcodes = "C6150J (Operating systems)",
classification = "723; C6150J (Operating systems)",
corpsource = "Dept. of Comput. Sci., Stirling Univ., UK",
fjournal = "The Computer Journal",
journal-URL = "http://comjnl.oxfordjournals.org/",
keywords = "communications; Communications systems; Computer
Operating Systems--Design; external resources; External
resources; file stores; File stores; functional
programming; Functional programming; Functional
Programming; high level application; High level
application program interfacing; infinite lists;
Infinite lists; interactive; interactive programming;
Interactive programs; Interactive Programs; lazy
evaluation; Lazy Evaluation; Lazy evaluation; low level
device interfacing; Low level device interfacing;
multiprocessing programs; multiprogramming operating;
Multiprogramming operating system; Non determinism,
Computer Programming; operating systems; Operating
systems; operating systems (computers); paradigm;
peripheral devices; Peripheral devices; Process
Networks; program interfacing; programs; resource
management; Resource management; software design;
Software design paradigm; system; systems",
thesaurus = "Functional programming; Interactive programming;
Multiprocessing programs; Operating systems
[computers]",
treatment = "P Practical",
}
Related entries
- 25-3-396b-396, 25-4-496a-496,
26(2)134,
26(2)175,
26(3)205,
26(3)235,
26(3)282,
27(1)3,
27(1)62,
27(3)254,
28(3)216,
28(4)366,
28(5)487,
29(1)9,
29(1)12,
29(1)24,
29(1)33,
29(2)109,
29(2)118,
29(2)176,
29(3)229,
29(3)235,
29(3)241,
29(6)527,
30(1)20,
30(1)52,
30(2)157,
30(3)228,
30(3)249,
30(5)386,
30(5)437,
30(5)451,
30(6)487,
31(1)9,
31(3)209,
31(3)220,
31(6)503,
31(6)570,
32(4)323,
32(4)362
- 26-4-381c-381,
27(3)254,
27(4)348,
27(4)354,
28(1)59,
28(3)216,
28(4)391,
28(5)498,
29(1)76,
29(3)229,
29(4)315,
29(6)486,
30(1)20,
30(1)77,
30(2)97,
30(2)110,
30(3)239,
30(5)413,
30(5)420,
30(5)469,
30(6)551,
31(1)9,
31(1)65,
31(1)76,
31(2)175,
31(3)285,
31(4)364,
31(5)409,
31(5)420,
31(5)437,
31(6)550,
32(1)93,
32(3)202,
32(4)312,
32(4)323,
32(4)333,
32(4)351,
32(4)374,
32(4)377,
32(5)461,
32(6)541
- access,
23(2)124,
23(2)188,
25(1)74,
25(1)140,
25(2)193,
25(4)486,
26(1)10,
26(2)113,
27(1)3,
27(3)270,
28(3)291,
28(4)398,
28(4)409,
29(1)9,
29(2)167,
29(6)527,
30(2)157,
30(3)249,
30(4)343,
30(5)451,
30(6)485,
30(6)529,
31(1)41,
31(2)116,
31(2)147,
31(3)209,
31(6)503,
32(1)24,
32(1)90,
32(4)362
- alternative,
23(3)286,
28(4)366,
29(3)253,
30(5)425,
30(6)481
- approach,
23(1)3,
23(1)9,
23(1)28,
23(2)114-1,
23(3)223,
23(3)256,
23(4)317,
24(3)222,
24(4)320,
25(1)12,
25(3)353,
25(4)410,
25(4)442,
25(4)492,
26(3)255,
26(3)283,
26(4)293,
26(4)360,
26(4)383,
27(1)3,
27(1)37,
27(2)171,
27(3)246,
28(1)59,
28(1)89,
28(2)97,
28(2)162,
28(4)353,
29(2)161,
29(2)189,
29(2)189-1,
29(3)222,
29(4)330,
29(5)385,
30(1)8,
30(2)119,
30(2)176,
30(3)258,
30(5)393,
30(5)437,
30(6)507,
31(2)133,
31(2)182,
31(3)243,
31(5)409,
32(2)152,
32(5)386,
32(5)437
- been,
23(2)142,
24(4)320,
32(1)13,
32(2)127,
32(2)142,
32(2)152,
32(5)461
- C6150J,
31(6)565,
32(1)21,
32(1)24,
32(1)45,
32(5)422
- class,
25(1)52,
25(3)388,
26(2)142,
29(2)151,
31(4)325,
32(1)76,
32(4)305,
32(4)333
- communications,
23(2)141,
25(4)410,
30(3)254,
31(4)289,
31(4)296,
31(5)474,
32(3)252,
32(3)267
- device,
23(2)147,
23(2)165,
24(2)130,
25(1)74,
26(3)196,
27(3)225,
27(3)260,
27(3)270,
29(1)47,
29(1)60,
30(1)77,
31(3)253,
31(5)457
- do,
27(4)376
- evaluation,
23(2)142,
23(2)187-1,
24(3)288,
25(2)183,
25(2)188,
25(2)239,
25(4)493,
26(2)134,
27(1)87,
27(3)201,
28(2)128,
28(2)142,
28(3)223,
28(3)309,
28(3)319,
28(4)409,
28(4)426,
29(4)380,
29(4)380-1,
29(5)390,
29(5)396,
30(3)214,
30(3)228,
30(4)289,
30(4)362,
30(4)376,
30(5)437,
30(6)481,
30(6)519,
31(1)12,
31(3)220,
31(4)304,
31(5)409,
31(5)437,
31(6)565,
32(1)36,
32(2)98,
32(2)142,
32(5)437,
32(5)461
- external,
25(2)227,
25(3)327,
27(3)218,
27(3)270,
32(4)333
- first,
23(2)186,
24(1)16,
24(2)97,
25(1)32,
25(2)199,
27(4)368-1,
32(1)76,
32(4)290
- have,
24(4)320,
29(4)289,
31(3)243,
32(1)13,
32(2)142,
32(2)152,
32(5)461
- high,
23(2)124,
23(2)153,
24(1)56,
25(1)153,
25(2)176,
25(2)264,
25(3)289,
26(1)52,
26(1)72,
26(2)124,
26(2)175,
26(3)228,
26(3)277,
26(4)344,
26(4)360,
26(4)366,
27(1)37,
27(1)83,
27(2)97,
27(2)151,
28(1)34,
28(3)231,
28(3)250,
28(4)391,
29(2)118,
29(3)229,
29(3)253,
29(4)289,
29(4)340,
29(6)500,
29(6)506,
29(6)538,
30(2)128,
30(5)437,
30(6)487,
30(6)558,
31(2)99,
31(2)110,
31(3)220,
31(3)243,
32(1)36,
32(1)90,
32(2)127,
32(2)152,
32(4)290,
32(4)297,
32(4)305,
32(4)312,
32(4)323,
32(4)341,
32(5)413
- how,
26(3)235,
32(5)461
- infinite,
31(3)243
- interactive,
23(3)233,
24(1)62,
24(2)191,
25(3)399,
26(1)93,
26(2)187,
26(3)199,
26(3)235,
27(1)8,
27(2)112,
28(1)22,
28(2)117,
28(5)474,
29(1)38,
29(2)176,
29(3)201,
29(5)385,
29(5)396,
31(5)445,
31(5)457,
32(1)21,
32(1)86,
32(2)142,
32(6)516
- large,
25(3)327,
26(4)336,
27(2)135,
27(3)270,
28(3)231,
28(5)498,
29(4)289,
30(4)295,
30(4)343,
30(4)362,
30(5)404,
32(6)516
- lazy,
30(3)214,
32(2)97,
32(2)98,
32(2)108,
32(2)127,
32(2)142,
32(5)461
- level,
23(2)124,
23(2)153,
24(1)25,
24(1)56,
24(1)62,
25(1)153,
25(2)176,
25(2)264,
25(3)289,
25(4)429,
26(1)52,
26(1)72,
26(2)124,
26(2)175,
26(2)188,
26(3)228,
26(3)235,
26(3)277,
26(4)344,
26(4)360,
26(4)366,
27(1)83,
27(2)97,
27(2)151,
27(4)334,
28(1)34,
28(3)250,
28(4)357,
29(2)118,
29(3)229,
29(3)253,
29(4)340,
29(6)500,
29(6)506,
29(6)538,
30(1)52,
30(2)128,
30(5)437,
30(6)487,
31(2)99,
31(2)110,
31(3)220,
31(3)229,
31(3)243,
31(4)344,
32(1)36,
32(1)90,
32(2)127,
32(2)152,
32(4)290,
32(4)297,
32(4)305,
32(4)312,
32(4)323,
32(4)341,
32(5)413
- list,
25(1)32,
25(3)327,
25(4)448,
26(4)289,
27(1)18,
27(1)62,
27(4)373,
29(2)171,
32(2)98
- low,
25(1)159
- multiprocessing,
24(4)353,
25(1)22,
28(2)105,
28(2)142,
28(5)449,
28(5)466,
29(1)1,
29(2)109,
29(2)118,
29(2)182,
29(5)390,
29(5)404,
30(3)214,
31(3)201,
32(1)29,
32(3)267,
32(4)362
- multiprogramming,
24(3)230,
25(1)121,
29(5)423,
30(1)20,
30(3)193,
30(6)558,
32(4)341
- must,
31(3)243,
31(4)296
- non,
23(2)132
- not,
23(2)142,
27(4)376,
31(3)243,
31(4)296,
31(4)379,
32(2)142
- paradigm,
23(2)107,
25(1)12,
28(1)82,
30(1)8
- particular,
30(5)437,
31(4)289,
32(2)98,
32(2)122,
32(2)175
- peripheral,
23(1)46,
24(1)62,
24(3)287,
28(4)357,
30(6)558,
31(5)457
- present,
24(4)320,
27(4)368-1,
32(2)127
- process,
23(2)147,
24(1)78,
25(1)7,
25(1)34,
25(1)44,
25(1)116,
25(2)231,
26(1)10,
26(2)113,
26(2)134,
26(3)277,
26(4)381,
27(1)18,
27(4)328,
28(1)73,
28(4)409,
29(2)109,
29(4)373,
29(4)380,
29(5)396,
29(5)423,
29(6)500,
29(6)506,
30(1)20,
30(1)52,
30(2)149,
30(3)201,
30(4)372,
30(5)393,
30(6)487,
30(6)498,
30(6)541,
31(3)201,
31(3)248,
31(4)289,
31(4)296,
31(5)426,
32(1)16,
32(1)24,
32(1)45
- proposed,
25(4)471,
26(1)60,
27(4)368-1,
29(4)289,
30(5)437,
32(5)461
- reference,
26(2)164,
28(1)1
- resource,
23(2)147,
24(1)31,
25(1)52,
25(2)207,
27(1)62,
27(3)193,
29(1)90,
32(4)362,
32(6)533
- show,
26(3)235,
32(2)98
- simple,
25(2)193,
26(1)68,
26(2)164,
28(2)142,
28(4)372,
29(3)201,
30(3)268,
30(4)295,
30(5)437,
31(1)61,
32(1)93
- single,
25(2)227,
28(5)518,
30(3)249,
30(3)277,
30(4)378,
32(3)220
- solution,
23(1)85,
23(4)338,
24(2)180,
24(2)184,
25(1)56,
25(2)231,
27(2)171,
28(4)366,
29(2)182,
30(4)376,
31(1)76,
32(1)13,
32(1)45,
32(2)152,
32(2)187
- store,
23(4)298,
25(1)32,
25(4)448,
26(1)25,
32(3)252
- stream,
31(4)304,
32(4)370
- structuring,
25(3)379,
26(1)1,
28(3)250,
28(3)298,
29(3)229,
29(4)300,
29(4)348,
30(1)43
- such,
30(5)437,
31(3)243,
31(4)296,
32(2)108,
32(2)142,
32(2)152,
32(2)175
- there,
30(5)437,
31(4)289,
32(2)122
- which,
23(2)142,
24(4)320,
29(3)201,
30(3)214,
30(5)437,
31(3)243,
31(4)289,
31(4)296,
32(1)13,
32(1)45,
32(1)93,
32(2)108,
32(2)122,
32(2)142,
32(5)461
- write,
30(5)437