freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

計(jì)算機(jī)畢業(yè)設(shè)計(jì)外文翻譯--現(xiàn)代并發(fā)抽象c#(已修改)

2025-05-31 17:12 本頁面
 

【正文】 1 南京郵電大學(xué) 畢業(yè)設(shè)計(jì) (論文 )外文資料翻譯 學(xué) 院 傳媒與藝術(shù)學(xué)院 專 業(yè) 數(shù)字媒體技術(shù) 學(xué)生姓名 黃超 班級學(xué)號 B080705 B08070525 外文出處 ACM Transactions on Programming Languages and Systems, Vol. 26, No. 5, September 2020 附件: ; 2 指導(dǎo)教師評價(jià): 1.翻譯內(nèi)容與課題的結(jié)合度: □ 優(yōu) □ 良 □ 中 □ 差 2.翻譯內(nèi)容的準(zhǔn)確、流暢: □ 優(yōu) □ 良 □ 中 □ 差 3.專業(yè)詞匯翻譯的準(zhǔn)確性: □ 優(yōu) □ 良 □ 中 □ 差 4.翻譯字符數(shù)是否符合規(guī)定要求: □ 符合 □ 不符合 指導(dǎo)教師簽名: 年 月 日 3 附件 1:外文資料翻譯譯文 現(xiàn)代并發(fā)抽象 C# 尼克本頓,盧卡卡戴爾和塞德里克?富爾 微軟研究院 語言和并發(fā) 并發(fā)是現(xiàn)代代碼中的一個(gè)重要實(shí)現(xiàn)形式:并發(fā)程序的編寫設(shè)計(jì),解釋,調(diào)試,和調(diào)整都是有難度的。并發(fā)可以顯著影響一個(gè)結(jié)構(gòu)中的語言的含義(開始轉(zhuǎn)讓的原子),并能影響調(diào)用庫的能力。盡管這樣,最流行的編程語言對待并發(fā)語言不是作為一種語言功能的并發(fā)性,而往往是作為一個(gè)收集的,根據(jù)指定的外部庫??紤]到這樣的事實(shí)后,規(guī)范的并發(fā)庫 [比勒爾等。 1987 年 。斯林等。 1996 年 Detlefs 等。 1998年古列維奇等。 2020] 已給予相當(dāng)?shù)闹匾暎ǔMㄟ^這些規(guī)范就可以對他們的行為應(yīng)該在何處執(zhí)行做出判斷。然而,即使當(dāng)并發(fā)庫被正 確指定,但由于他們是庫,而不是語言的特點(diǎn)這個(gè)事實(shí),還是會有不良的后果。 在原則上,可以提供許多功能,無論是作為語言特性或作為庫:典型的例子是,內(nèi)存管理和異常。有“語言”等功能的優(yōu)點(diǎn)是,編輯者可以對它們進(jìn)行分析,因此可以產(chǎn)生更好的代碼,并警告親程序員的潛在和實(shí)際問題。特別是,編譯器可以檢查語法嵌入的變量,這將是很難從庫中提取調(diào)用的集合。此外,程序員可以更可靠說明自己的意圖,通過一個(gè)清晰的語法和其他工具比編輯者可以更容易地確定程序員的意圖。特定領(lǐng)域的語言 [Ramming 1997。 Kamin 1997]是一 個(gè)極端的語言學(xué)方法的例子:經(jīng)常提出新的特設(shè)語言并不是要取代通用的語言,而是為了方便特定于域的代碼分析域相關(guān)的功能,作為原始的語言表達(dá)簡單的事實(shí)結(jié)構(gòu)。 我們相信,并發(fā)應(yīng)該是一個(gè)語言功能的一部分和一種語言規(guī)范。在 70 年代開始在這個(gè)方向作了很多嘗試,顯示器 [霍爾 1974年 ]的概念和奧卡姆語言 [INMOS有限公司 1984](基于通信順序進(jìn)程 [霍爾 1985])。監(jiān)控器的一般概念已經(jīng)變得非常流行,特別是在其目前的面向?qū)ο蟮男问骄€程和對象綁定互斥,但它已提供作為一個(gè)語法的外殼模板,最可選鎖定對象上的方法調(diào)用。 許多事情因 為監(jiān)控器被引入并發(fā)而已經(jīng)改變。通信已變得更加的異步,并行計(jì)算一定要通過規(guī)模較大的“精心策劃”的。值得關(guān)注的是沒有那么多的有效的實(shí)施和使用鎖在一個(gè)單一的處理器或者多重處理器,但沒有不必要的異步事件的處理能力阻止長期客戶,并沒有死鎖。換句話說,重心正在從共享內(nèi)存并發(fā)轉(zhuǎn)向消息或事件并發(fā)性。 這些新的要求應(yīng)該得到可以處理異步通信和不束縛共享記憶的編程結(jié)構(gòu)的方法。盡管出現(xiàn)大規(guī)模的模式設(shè)計(jì)如 [America 1989。 Agha et 。 Reppy 1992。 Pierce and Turner 2020。 Philippsen 1995],但只有監(jiān)控器獲得廣泛接受的編程結(jié)構(gòu)。 最近在富爾和 Gonthier 的 [1996, 2020]加入演算中顯現(xiàn)了一個(gè)有趣的新的語言方法,進(jìn)程演算非常適合在分布式的環(huán)境中直接執(zhí)行。其他語言,如 JoCaml [Conchon and Le Fessant 1999]和 Funnel [Odersky 4 2020],結(jié)合了類似功能編程模型的想法。在這里,我們提出了一個(gè)加入演算想法的適應(yīng)一個(gè)面向?qū)ο蟮恼Z言,有一個(gè)現(xiàn)有線程和鎖的并發(fā)模型。 itzstein 和 Kearney [2020]最近為 Java 描述非常類似的擴(kuò)展。 異步編程 異步的事件和消息傳遞越來越多地用于在各級軟件系統(tǒng)。在最低水平,設(shè)備驅(qū)動程序必須對異步設(shè)備事件迅速作出反應(yīng),而資源利用上的吝嗇。在圖形用戶界面級別是出了名的,復(fù)雜的代碼和編程模型,因?yàn)橛脩羰录漠惒叫再|(zhì) 。在同一時(shí)間,用戶討厭被不必要的封鎖。在廣域網(wǎng)的水平,例如,在協(xié)作應(yīng)用,分布式的工作流, Web 服務(wù),我們現(xiàn)在遇到類似的問題,因?yàn)槿蛲ㄐ诺漠惒叫再|(zhì)和潛伏期和復(fù)雜性。 在所有這些領(lǐng)域,我們自然會發(fā)現(xiàn)有很多要處理的同時(shí)異步消息的情況下,多線程用來處理它們。主題仍 然是一個(gè)在大多數(shù)系統(tǒng)中昂貴的資源。然而,如果我們能有些隱藏在背后的消息和線程使用一種語言機(jī)制,那么很多的選項(xiàng)成為可能。編譯器可狀態(tài)機(jī)轉(zhuǎn)換成并發(fā)的一些模式,優(yōu)化使用隊(duì)列,使用輕量級的線程,在可能的情況下,避免分叉線程沒有必要的,并使用線程池。這一切都是真的有可能只有一個(gè)擁有上譜“,可以發(fā)生的事情”:這個(gè)手柄可以處理由并發(fā)操作,既可以隱藏,從而使多個(gè)語法實(shí)現(xiàn)技術(shù)。因此,我們的目標(biāo)是促進(jìn)異步編程抽象是高層次的,從一個(gè)程序員的角度來看,使低層次的優(yōu)化,從一個(gè)編譯器和運(yùn)行時(shí)系統(tǒng)的角度來看。我們提出用現(xiàn)代并發(fā) C#語言的 延伸異步編程抽象。在與音樂的精神調(diào)諧的 C#和并發(fā)活動的“協(xié)調(diào)流程”,我們稱這種語言復(fù)調(diào) C#。 C 和 .NET C#是一個(gè)現(xiàn)代,類型安全,面向?qū)ο缶幊陶Z言,最近微軟推出的 Visual ][ECMA 的一部分。 C#程序上運(yùn)行 .NET 框架,其中包括多語言的執(zhí)行頂部 引擎和一個(gè)豐富的類庫集合。 .NET 執(zhí)行引擎提供了一個(gè)多線程的執(zhí)行環(huán)境潛在的相互關(guān)聯(lián)與同步鎖MENT 在堆上分配的對象。 C#語言,包括一個(gè) lock 語句,執(zhí)行的過程中獲得一個(gè)給定的對象相關(guān)聯(lián)的互斥阻塞。此外, .NET 庫實(shí)現(xiàn)了許多傳統(tǒng)的并發(fā)控制原語,如信號量,互斥和讀 /寫鎖,以及異步編程模型的基礎(chǔ)上代表。 .NET 框架還提供更高級別的基礎(chǔ)設(shè)施建設(shè)分布應(yīng)用和服務(wù),如基于 SOAP 的消息傳遞和遠(yuǎn)程方法打電話。 .NET Framework 中的并發(fā)和分配機(jī)制功能強(qiáng)大,但他們也不可否認(rèn)復(fù)雜。且不說從原語,更多的或較少的基礎(chǔ)設(shè)施,在烤“讓人眼花繚亂,有一臺機(jī)器上(共享內(nèi)存,線程,同步的基礎(chǔ)上的東西是 20世紀(jì) 70 年代的并發(fā)模型之間的不匹配相互排斥)和異步,基于消息的風(fēng)格,使用編程基于網(wǎng)絡(luò)的應(yīng)用和服務(wù)。因此, C#中似乎是一個(gè)為主流的并發(fā)語 言支持我們的想法,理想的測試床語言。 2。復(fù)調(diào) C#語言概述 本節(jié)介紹新構(gòu)造復(fù)調(diào)的 C#語法和語義,然后給出了更精確,雖然仍是非正式的,規(guī)范 語法。 基本思路 到 C#的相當(dāng)傳統(tǒng)的面向?qū)ο缶幊棠P?,?fù)調(diào) C#增加了兩個(gè)新概念:異步方法和復(fù)調(diào)。 異步方法。傳統(tǒng)的方法是同步的,在檢測到來電者沒有取得任何進(jìn)展,直到被叫方完成。復(fù)調(diào) C#中,如果一個(gè)方法被聲明為異步調(diào)用任何保證立即基本上完成。異步方法永遠(yuǎn)不會返回結(jié)果(或拋出異常) 。他們使用 async 關(guān)鍵字,而不是宣布無效。調(diào)用異步方法很像是發(fā)送消息,或張貼的 事件。由于異步方法立即返回,方法的調(diào)用如下 : async postEvent(EventInfo data) { // large method body } 是唯一可以合理地調(diào)用立即返回,“大被安排在不同的線程執(zhí)行方法體“(無論是一個(gè)新的催生了以服務(wù)這個(gè)呼叫,或者從一些游泳池的工人)。然而,這樣的定義,實(shí)際上是相當(dāng)難得的 C#復(fù)調(diào)。更常見的異步方法是使用如下所述的復(fù)調(diào),定義,不一定需要新的線程。復(fù)調(diào)。復(fù)調(diào)(也被稱為“同步模 5 式”,或“加盟模式”)由一個(gè)頭和一個(gè)身體。頭是一套方法聲明由“&”分隔。身體 只執(zhí)行一次所有的方法,在頭被稱為方法調(diào)用隱含排隊(duì)等候,直到 /除非是有現(xiàn)代并發(fā)抽象為 C#匹配的復(fù)調(diào)??紤],例如 : public class Buffer { public string Get() amp。 public async Put(string s) { return s。 } } 上面的代碼定義了兩個(gè)實(shí)例方法的類的緩沖區(qū),這是共同定義在一個(gè)單一的復(fù)調(diào)。 string Get()方法是一個(gè)同步的方法不接受參數(shù)并返回一個(gè)字符串。 async Put(string s)方法是異步的(沒有返回結(jié)果),并接受一個(gè)字符 串參數(shù)。如果 buff 是緩沖和一個(gè)調(diào)用同步方法的 ]的一個(gè) buff . Get()實(shí)例。然后有兩種可能性: 如果有以前的未匹配過的的通話 buff . Put(s) (for some string s),那么現(xiàn)在有一個(gè)比賽,所以離隊(duì)待沽 Put(s)和復(fù)調(diào)的身體運(yùn)行,返回到呼叫者的 buff . Get()方法。 如果是以前匹配過的來電 buff . Put(.),然后調(diào)用 BUFF. get()方法阻塞,直到另一個(gè)線程提供了一個(gè)匹配的 put()。 相反,在調(diào)用異步方法的 buff . Put(.),來電從未等待,但 對于其他線程可能有兩種行為: 如果有以前的未匹配過的通話 buff . Get()再有就是現(xiàn)在的一次匹配,所以掛起調(diào)用出列和其相關(guān)阻塞的線程是喚醒運(yùn)行的復(fù)調(diào),返回值給 s。 如果沒有掛起調(diào)用的 (),然后調(diào)用到 buff . Put(s)僅僅是排隊(duì),直到一個(gè)個(gè)到達(dá)。 到底哪的電話匹配是不確定的,所以即使是單線程程序如: Buffer buff = new Buffer()。 buff . Put(“blue”)。 buff . Put(“sky”)。 (buff . Get() + buff . Get())。 也是不確定的(印刷或者“藍(lán)天”或“天藍(lán)”)。 請注意,執(zhí)行緩沖不涉及產(chǎn)生任何主題:復(fù)調(diào)本身在運(yùn)行時(shí),它在一個(gè)已經(jīng)存在的線程(即一個(gè)名為 Get())。讀者在這一點(diǎn)上可能會想什么規(guī)則決定在哪個(gè)線程體運(yùn)行,或如何,我們知道,方法調(diào)用將返回人體所計(jì)算的最終價(jià)值。答案是,在任何給定的弦,最多的一種方法可能是同步的。如果有這種方法,然后身體在與調(diào)用線程運(yùn)行這一號召的方法,并返回值。只是,如果沒有這樣的方法(即在弦的所有方法都是異步)運(yùn)行在一個(gè)新的線程,在這種情況下,有沒有要返 回的值。還應(yīng)當(dāng)指出,緩沖區(qū)的代碼,瑣碎,但它是,是線程安全的。需要鎖定(例如,以防止參數(shù)返回兩個(gè)不同的獲取到一個(gè)單放)自動生成由編譯器。更確切地說,決定是否任何復(fù)調(diào)呼叫啟用,如果是這樣,從隊(duì)列中刪除其他懸而未決的呼叫和調(diào)度為執(zhí)行機(jī)構(gòu),是一個(gè)原子操作。除了這個(gè)原子性的保證,然而,有沒有監(jiān)視器像復(fù)調(diào)機(jī)構(gòu)之間的相互排斥的。任何相互排斥的需要,必須明確在編程在弦頭的同步條件。緩沖區(qū)的例子定義了兩個(gè)方法使用一個(gè)單一的復(fù)調(diào)。這也是(普通)有涉及給定方法的多復(fù)調(diào)。例如: public class Buffer { public string Get() amp。 public async Put(string s) { return s。 } public string Get() amp。 public async Put(int n) { return ()。 } 6 } 現(xiàn)在我們已經(jīng)定義為數(shù)據(jù)緩沖區(qū)的方法之一,但有兩個(gè)把它的方法(其中發(fā)生類型,而不是要區(qū)分比名)。 Get()調(diào)用可以同步調(diào)用的 put()方法。如果有排隊(duì)調(diào)用 Put()s,那么哪一個(gè)同步隨后 Get()是不確定的。 3。非正式規(guī)范 語 法 到 C 語法的語法擴(kuò)展 [ECMA 2020, Appendix C]是非常次要的。我們添加一個(gè)新的關(guān)鍵字 async,并添加它作為一種替代的返回類型: returntype : := type | void | async 這使得方法,代表和接口方法被宣布異步的。在類成員的聲明中,我們更換方法聲明 chorddeclaration : := methodheader [amp。 methodheader]? body methodheader : := 屬性修飾符返回類型成員名(形參)。 我們呼吁復(fù)調(diào)聲明微不足道 的,如果它宣布一個(gè)單一的,同步的方法(即它是一個(gè)標(biāo)準(zhǔn)的 C 方法聲明)。 良好的格式 擴(kuò)展類是格式良好的條件: 在一個(gè)單一的方法頭: ( 1)如果返回類型是異步的,那么正式的參數(shù)列表中的形參不得 包含任何 ref 或 out 參數(shù)修飾符。 在一個(gè)單一的復(fù)調(diào)聲明: ( 2)最多的一種方法頭可能有非異步的返回類型。 ( 3)如果弦有一個(gè)返回類型的類型的方法頭,然后身體可能使用返回類型的表達(dá)式的語句,否則身體可能使用空的 return 語句。 ( 4)在方法頭中出現(xiàn)的所有形參必須有鮮明的標(biāo)識。 ( 5)兩種方法,頭可能沒有相同 的成員名稱和相同的參數(shù)類型簽名。 ( 6)的方法,頭必須全部申報(bào)的實(shí)例方法或所有聲明的靜態(tài)方法。 在一個(gè)特定的類: ( 7
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1