Go! - LP for the Internet era Francis G. McCabe Laboratories of America.
-
Upload
cori-powers -
Category
Documents
-
view
221 -
download
0
description
Transcript of Go! - LP for the Internet era Francis G. McCabe Laboratories of America.
![Page 1: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/1.jpg)
Go! - LP for the Internet eraGo! - LP for the Internet era
Francis G. McCabe
Laboratories of America
![Page 2: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/2.jpg)
Problem #1Problem #1
On average 3~10 security updates to Linux per week Most caused by buffer overflow holes C is too weak for secure programming
![Page 3: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/3.jpg)
Problem #2Problem #2
Navigational complexity Software systems meeting without prior
intention on the part of the designers Highly heterogenous, highly complex
![Page 4: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/4.jpg)
Problem #3Problem #3
The software development cycle is too long By the time a system has been built, in
`Internet time' it is already obsolete
![Page 5: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/5.jpg)
Problem #4Problem #4
Programmers and developers are not liable Accountants, architects, lawyers, journalists
are all liable for the quality of their product So are software developers
![Page 6: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/6.jpg)
Our world has changedOur world has changed
The Internet changes everything Even programming languages
![Page 7: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/7.jpg)
Go!Go!
Go! is an Internet ready logic programming language Aimed at high integrity, high security Aimed at agent based systems
![Page 8: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/8.jpg)
Logic programming basedLogic programming based
Strong semantic basis What you see is what you mean c.f. `Proof by compiler' semantics of C, Java
Rule based Closer to human intention
Simple elements Functions, relations and theta expressions
![Page 9: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/9.jpg)
Strong static typingStrong static typing
High correctness confidence Gets rid of `stupid' errors
Types are usually inferred automatically Significantly reduced programmer burden
![Page 10: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/10.jpg)
Higher OrderHigher Order
Programs are 1st class entities More disciplined than meta-logical Much clearer interfaces between programs Supports `fancy' features such as code
repositories, code mobility easilyNot higher-order logic
Functionally equivalent to FOL Avoids some nasty pitfalls of HOL
![Page 11: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/11.jpg)
DisciplineDiscipline
Disciplined access to resources File system `sand box' Code verification built in
Disciplined assignment Assignable variables are lexically scoped Only updateable by programs defined within
the same scope Not visible otherwise
![Page 12: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/12.jpg)
Distributed and multi-taskingDistributed and multi-tasking
Based on notions of active processProcesses only communicate via visible
mechanismsUniform messaging infrastructure
Communication is the same across the network as within a single activation
![Page 13: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/13.jpg)
A simple program about ancestorsA simple program about ancestors
{ p('a','b'); p('a','c'); p('b','d'); p('e','d'); p('f','e');
an(x,y) :- p(x,y); an(x,y) :- p(x,z), an(z,y);}
![Page 14: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/14.jpg)
Inside an agentInside an agent
![Page 15: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/15.jpg)
A fragment of an agent controllerA fragment of an agent controller
{ Active := []; mgr() :- proposal(T)<<H, profitable(T,H), Active := [spawn task(proposal(T),H),..Active], mgr();
profitable(T,H) :- ...
}.mgr
![Page 16: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/16.jpg)
A code repositoryA code repository
{ DB := []; inter ::= face(t) | prov(t,handle);
cr() :- repeat { face(C)<<client ->> { prov(C,server) in DB, face(C) >> client } | prov(F,S) ->> DB := [prov(F,S),..DB] } forever}
![Page 17: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/17.jpg)
Access the codeAccess the code
{ inter ::= face(t) | prov(t,handle);
Pan = Px::{ face(Px:(p:(symbol,symbol){},an:...))) >> CR, face(Px)<<CR};
goGo() :- Pan.an('me','you');}.goGo
![Page 18: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/18.jpg)
Publish codePublish code
{ inter ::= face(t) | prov(t,handle);
proxy = { p('a','b'); ... p('f','e');
an(x,y) :- p(x,y); an(x,y) :- p(x,z), an(z,y); };
publishPan() :- prov(proxy,self()) >> CR; }.pubishPan
![Page 19: Go! - LP for the Internet era Francis G. McCabe Laboratories of America.](https://reader034.fdocuments.net/reader034/viewer/2022052318/5a4d1b127f8b9ab05999015d/html5/thumbnails/19.jpg)
Wrap upWrap up
Go! is still in design stages Most of the elements are in place Compiler being constructed
Go! is targetted at the right problems!LP is the right framework for building agents
themselvesGo! prototype system will be available under an
Open Source Licence