资源描述:
《system description verification of distributed erlang programsnew》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SystemDescription:VericationofDistributedErlangPrograms12ThomasArts,MadsDam,Lars-akeFredlund,andDilianGurov1ComputerScienceLaboratory,EricssonTelecomAB,12625Stockholm,Sweden,E-mail:thomas@cslab.ericsson.se2SwedishInstituteofComputerScience,Box1263,S-16428Kista,Sweden,E-mail:fmfd,fred,diliang@s
2、ics.se1IntroductionSoftwarewrittenfortelecommunicationapplicationshastomeethighqualitydemands.Correctnessisonemajorconcern;theactivityofprovingformallythatasystemiscorrectiscalledverication.Telecommunicationssoftwareishighlyconcurrent,andtestingisoftennotcapableofguaranteeingcorrectnesstoasatis
3、factorydegree.Thesoftwarewearefacedwithconsistsofmany,relativelysmallmodules,writteninthefunctionallanguageErlang[AVWW96].Thesemodulesdenethebehaviourofanumberofprocessesoperatinginparallelandcommunicatingthroughasynchronousmessage-passing.Newprocessescanbegeneratedduringexecution.Becauseofthec
4、omplexityofsuchsoftware,ourapproachtovericationistoprovethatthesoftwaresatisesasetofpropertiescalledspecicationandformalizedinasuitablelogiclanguage.ThespecicationlanguageweuseisbasedonPark's-calculus[Par76,Koz83],extendedwithErlang-specicfeatures.Thisisaverypowerfullogic,duetothepresenceo
5、fleastandgreatestxedpointrecursion,allowingtheformalizationofawiderangeofbehaviouralproperties.Vericationinthiscontextisnotdecidable,butcanbeautomatedtoalargeextent,requiringhumaninterventioninafew,butcrucialpoints.TofacilitatevericationofErlangprogramsofrealisticsizewearedevel-opingavericat
6、iontoolimplementingatableau-basedproofsystemdescribedin[DFG98].Ourmainobjectivesaretoachieveasatisfactorydegreeofau-tomation,proofreuse,easynavigationthroughprooftableaux,andmeaningfulfeedbackaboutthecurrentproofstate,soastorequireuserinterventiononlywhenthisisreallynecessary,andtoassistintaking
7、informedproofdecisions.2TheErlangProgrammingLanguageWeconsideracorefragmentoftheErlangprogramminglanguagewithdynamicnetworksofprocessesoperatingondatatypessuchasnumbers,lists,tuples,orprocessidentiers(pid's),usingasynchrono