De kommande C och C++ reviderade standarderna tillför språkkonvergens, för första gången, i form av en subtil avslappnad minnesmodell (C++11-modellen). Detta syftar till att möjliggöra kompilatoroptimering och att anpassa de olika avspända beteendena hos vanliga multiprocessorer, genom att kombinera enkla semantik för de flesta koderna med högpresterande atomer på låg nivå för konvergensbibliotek. I det här dokumentet etablerar vi först två enklare men bevisligen likvärdiga modeller för C++11, en för hela språket och en annan för undergruppen utan förbrukning. Subscriting vidare till fragmentet utan låg nivå atomer, identifierar vi en subtilitet som uppstår från atomisk initiering och bevisar att, under ett ytterligare villkor, modellen är likvärdig med sekventiell konsekvens för rasfria program. Vi bevisar sedan vårt huvudsakliga resultat, riktigheten av två föreslagna sammanställningsscheman för C++11 last och lagra concurrency primitiver till Power montering, efter att ha noterat att ett tidigare förslag var bristfälligt. (De viktigaste idéerna gäller även ARM, som har en liknande avslappnad minnesarkitektur.) Detta bör informera den pågående utvecklingen av produktionskompilatorer för C++11 och C1x, klargöra vilka egenskaper maskinarkitekturen krävs och bygga förtroende för C++11 och Power semantik.
Batty och Al. REF tillhandahåller modeller för de reviderade standarderna för C och C++ som lägger till överensstämmelse till språken.
Clarifying and compiling C/C++ concurrency: from C++11 to POWER
{'venue': "POPL '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}