Numera finns det ett allmänt antagande av parallellprogrammering, som orsakas av den breda användningen av multicoreprocessorer, kluster och grafik bearbetningsenheter för olika problemlösning. Vanligtvis är program skriv tio i tvingande programmeringsspråk. Risken för att göra ett fel i ett parallellt program är högre i jämförelse med det sekventiella, eftersom parallella program har sina specifika fel. Eftersom majoriteten av systemet misslyckas är resultatet av programvara fel, är det oerhört viktigt att utveckla tillförlitlig programvara. Formell verifiering skulle kunna användas för att öka programvarans tillförlitlighet. Formell verifikation är ett bevis på program korrekthet genom att hitta korrespondensen mellan programmet och dess specificering, som beskriver syftet med utvecklingen [1]. Den största fördelen med formell verifiering är förmågan att bevisa frånvaron av fel i programmet, medan testning endast tillåter att upptäcka fel. I förhållande till andra metoder kräver formell verifiering analytisk behandling av källkodsegenskaper, det är därför syftet med formell verifiering endast kan uppnås genom noggranna matematiska bevis på program för att specificera korrespondens. Detta kräver formalisering av objekt som används vid verifiering. En metod för formell kontroll infördes av Hoare [2]. Den använder sig av ett axiomatiskt tillvägagångssätt baserat på Hoare-logik. Hoare logik är en förlängning av ett formellt system med vissa formler, som innehåller källkoden i det verifierade programmeringsspråket, som kallas Hoare triples. En Hoare trippel är en kommenterad program, nämligen källkoden och två formler av teorin, som beskriver begränsningar av inmatningsvariabler och villkor för programmets utförande resultat korrekthet. Dessa formler benämns "förutsättningar" respektive "eftervillkor". En Hoare trippel är vanligtvis av formen {-}Prog {-}, där Prog är ett program, - är en förutsättning och - är en postvillkor för Prog. Det utvidgade formella systemet skiljer sig från ytterligare axiom och slutsatser regler, som gör det möjligt att härleda påståenden om programegenskaper, särskilt om programmets korrekthet. Då programmet är korrekt om dess Hoare trippel är iden tically sant. Så huvudidén med detta tillvägagångssätt är att härleda en formel av formella system från Hoare trippel tillämpa regler inference och använda axioms som förutsättningar, och sedan bevisa sanningen i denna formel inom det formella systemet. Det finns vissa framsteg i den praktiska tillämpningen av ett sådant tillvägagångssätt för tvingande program ming språk [3]. Men formell verifiering komplexitet för parallella tvingande program ökar snabbt för system med både delat och distribuerat minne. I allmänhet är systemets resurskonflikter det största problemet. Exemplen är felaktig delad minnesanvändning för delade minnessystem och döda lås för distribuerade minnessystem. Ett alternativ till nödvändig programmering är det funktionella dataflödesparadigmet för parallellprogrammering som representerar ett program som en riktad dataflödeskurva. Ett genomförande av paradigmet för funktionellt dataflöde är språket Pifagor [4]. Grunden för denna modell är beräkningskontroll baserad på data 1 Artikeln publiceras i originalet. Abstract-The artikeln ägnas åt metoder för att bevisa parallella program korrekthet, som bygger på den axiomatiska tillvägagångssätt. Formellt system för funktionellt dataflöde parallell programmering lan guage Pifagor beskrivs. På grundval av detta system skulle man kunna bevisa att programmen var korrekta. Formell verifiering av program i funktion
I REF baseras verifieringen av parallella programs korrekthet på den axiomatiska metoden.
Formal verification of programs in the functional data-flow parallel language
{'venue': 'Automatic Control and Computer Sciences', 'journal': 'Automatic Control and Computer Sciences', 'mag_field_of_study': ['Computer Science']}