คำถามติดแท็ก semantics

อรรถศาสตร์อธิบายความหมายของวากยสัมพันธ์อย่างเป็นทางการ

1
ความแตกต่างระหว่างซีแมนติกส์ขนาดเล็กและใหญ่ในการปฏิบัติงาน
อะไรคือความแตกต่างพื้นฐานระหว่างความหมายในการดำเนินงานขนาดเล็กและขนาดใหญ่ ฉันมีเวลายากที่จะเข้าใจว่ามันคืออะไรและมีแรงบันดาลใจในการมีสองสิ่งนี้

5
แคลคูลัสกับการสะท้อน
ฉันกำลังมองหาแคลคูลัสง่ายๆที่สนับสนุนการให้เหตุผลเกี่ยวกับการสะท้อนกลับคือการวิปัสสนาและการจัดการโปรแกรมที่กำลังทำงานอยู่ คือมี untyped ขยายแคลคูลัสที่ช่วยให้หนึ่งในการแปลงλ -terms ลงในแบบฟอร์มที่สามารถจัดการ syntactically แล้วประเมินผลภายหลังหรือไม่?λλ\lambdaλλ\lambda ฉันจินตนาการว่าแคลคูลัสมีสองคำหลักเพิ่มเติม : ใช้เวลาวีและผลิตตัวแทนของโวลต์ทำให้ถูกต้องในการจัดการประโยคreflect vreflect v\mathtt{reflect}\ vvvvvvv : ใช้การแทนประโยคของคำศัพท์และประเมินมันeval veval v\mathtt{eval}\ v เพื่อสนับสนุนการสะท้อนจำเป็นต้องมีการแสดงคำศัพท์ทางวากยสัมพันธ์ มันจะมีลักษณะเช่น: จะแสดงเป็นระยะ ( L M R ( E ) )ที่ R ( E )เป็นรุ่นที่สะท้อนให้เห็นของอี ,λx.eλx.e\lambda x.e(LAM R(e))(LAM R(e))(\mathsf{LAM}\ R(e))R(e)R(e)R(e)eee จะแสดงเป็นคำ ( A P P R ( e ) R ( …

3
เมื่อใดที่การจำลองทั้งสองไม่ได้เป็นการแบ่งครึ่ง
เมื่อได้รับการเปลี่ยนระบบ โดยที่คือชุดของรัฐเป็นชุดของป้ายกำกับและเป็นความสัมพันธ์แบบไตรภาค ตามปกติการเขียนสำหรับ(P,การเปลี่ยนเลเบลแสดงว่าระบบในสถานะเปลี่ยนสถานะเป็นด้วยเลเบลซึ่งหมายความว่าเป็นการกระทำที่สังเกตได้ซึ่งทำให้เกิดการเปลี่ยนแปลงสถานะS Λ → ⊆ S × Λ × S P α → Q ( P , α , Q ) ∈ → P α →คิวพีคิวα α( S, Λ , → )(S,Λ,→)(S,\Lambda,\to)SSSΛΛ\Lambda→ ⊆ S× Λ × S→⊆S×Λ×S\to\subseteq S\times\Lambda\times Sp →αQp→αqp \stackrel\alpha\rightarrow q( p , α , q) ∈ →(p,α,q)∈→(p,\alpha,q)\in\top …

2
สัญกรณ์คณิตศาสตร์ที่ไม่ต่อเนื่องส่วนที่คล้ายกันนี้ใช้สำหรับกฎที่เป็นทางการคืออะไร?
ในกระดาษ"ประเภทข้อมูล JSON ที่ซ้ำกันอย่างไม่มีข้อขัดแย้ง"ฉันพบสัญกรณ์นี้เพื่อกำหนด "กฎ" อย่างเป็นทางการ: สัญกรณ์นี้เรียกว่าอะไร? ฉันจะอ่านมันได้อย่างไร ตัวอย่างเช่น: DOCกฎไม่ได้มีอะไรใน "เศษ" ของ - ทำไมไม่? EXECและGETกฎปรากฏว่ามีสองข้อตกลงแยกต่างหากเหนือเส้น, หมายความว่าอะไร? VARกฎยืนออกบิตเช่นกันเนื่องจากในขณะที่กฎระเบียบอื่น ๆ จำนวนมากใช้การจัดเรียงของลูกศรบางส่วน (ซึ่งผมจะใช้เวลาที่จะหมายถึง "หมายถึง") ขึ้นด้านบนนี้เท่านั้นดูเหมือนว่าจะได้รับการบอกว่า x เป็นองค์ประกอบของสิ่งที่ เกือบทุกอย่างจะเต็มไปด้วยข้อความเริ่มต้นAp,ซึ่งข้อความอธิบายว่า "สถานะของแบบจำลอง p ถูกอธิบายโดย Ap, ฟังก์ชันอัน จำกัด บางส่วน" - ผู้อ่านที่เข้าใจในสัญกรณ์นี้มีแนวโน้มที่จะ "เห็น" ส่วนใดของกฎทุกข้อ? ไซต์นี้แนะนำคำถามที่เกี่ยวข้องซึ่งมีสัญกรณ์คล้ายกันมากเกี่ยวกับคำถามความสำคัญของ⟨B, s⟩ -> ⟨B ', s'⟩เป็นกฎเริ่มต้นในคำถามนี้เกี่ยวกับขั้นตอนเล็ก ๆ ความหมาย? - สิ่งนี้ถูกแท็กเป็นซีแมนติกส์เชิงปฏิบัติการและดูเหมือนจะเป็นผู้นำที่แข็งแกร่ง เป็นกรอบที่ฉันควรจะตีความตัวเลขเหล่านี้หรือไม่? คุณสามารถสรุปได้อย่างง่ายดายในรูปแบบ "หลักสูตรผิดพลาด" เพื่อให้แม้ว่าฉันไม่สามารถตรวจสอบความถูกต้องของหลักฐานได้อย่างน้อยที่สุดฉันก็สามารถเข้าใจสิ่งที่พวกเขากำลังพูดถึงในส่วนนี้ได้มากขึ้น?

3
ปัญหาการใช้งานการปิดในการตั้งค่าที่ไม่ทำงาน
ในภาษาการเขียนโปรแกรมการปิดเป็นคุณสมบัติที่นิยมและมักต้องการ Wikipediaพูดว่า (เหมืองที่เน้น): ในวิทยาการคอมพิวเตอร์การปิด (... ) คือฟังก์ชั่นร่วมกับสภาพแวดล้อมอ้างอิงสำหรับตัวแปรที่ไม่ใช่ท้องถิ่นของฟังก์ชั่นนั้น การปิดช่วยให้ฟังก์ชั่นเข้าถึงตัวแปรนอกขอบเขตศัพท์ได้ทันที ดังนั้นการปิดจึงเป็นค่าฟังก์ชัน (ไม่ระบุชื่อ) ซึ่งสามารถใช้ตัวแปรที่อยู่นอกขอบเขตของตัวเอง จากประสบการณ์ของฉันนี่หมายความว่ามันสามารถเข้าถึงตัวแปรที่อยู่ในขอบเขตที่จุดนิยามได้ ในทางปฏิบัติแนวคิดนี้ดูเหมือนจะเบี่ยงเบนไป แต่อย่างน้อยก็อยู่นอกการโปรแกรมเชิงปฏิบัติ ภาษาที่แตกต่างกันใช้ความหมายที่แตกต่างกันแม้ดูเหมือนว่าจะมีสงครามของ Verifyons โปรแกรมเมอร์หลายคนดูเหมือนจะไม่รู้ว่าการปิดคืออะไรดูพวกเขาน้อยกว่าฟังก์ชั่นที่ไม่ระบุชื่อ นอกจากนี้ดูเหมือนว่าจะมีอุปสรรคสำคัญเมื่อดำเนินการปิด สิ่งที่น่าสังเกตมากที่สุดคือ Java 7 น่าจะรวมเอาไว้ แต่ฟีเจอร์ดังกล่าวจะถูกส่งกลับไปยังรีลีสในอนาคต เหตุใดการปิดจึงยากที่จะเข้าใจ คำถามนี้กว้างเกินไปและคลุมเครือดังนั้นขอให้ฉันมุ่งเน้นไปที่คำถามที่เชื่อมต่อกันเหล่านี้มากขึ้น: มีปัญหาเกี่ยวกับการแสดงการปิดในพิธีการทางความหมายทั่วไป (ขั้นตอนเล็ก ๆ ขั้นตอนที่ใหญ่ ... )? ระบบชนิดที่มีอยู่ไม่เหมาะสำหรับการปิดและไม่สามารถขยายได้อย่างง่ายดายหรือไม่? เป็นปัญหาหรือไม่ที่จะนำการปิดให้สอดคล้องกับการแปลขั้นตอนแบบดั้งเดิม โปรดทราบว่าคำถามส่วนใหญ่เกี่ยวข้องกับภาษาเชิงโพรซีเดอร์เชิงวัตถุและสคริปต์ เท่าที่ฉันรู้ภาษาการทำงานไม่มีปัญหาใด ๆ

2
ฟังก์ชั่น Scott ต่อเนื่อง: นิยามทางเลือก
ฉันกำลังดิ้นรนกับอสังหาริมทรัพย์นี้จริงๆ: ให้X,YX,YX,Yเป็นช่องว่างที่เชื่อมโยงกันและf:Cl(X)→Cl(Y)f:Cl(X)→Cl(Y)f: Cl(X) \rightarrow Cl(Y)เป็นฟังก์ชั่นโมโนโทน ต่อเนื่องหากสำหรับเช่นนั้นเป็นชุดกำกับffff(⋃x∈Dx)=⋃x∈Df(x)f(⋃x∈Dx)=⋃x∈Df(x)f(\bigcup_{x\in D} x)=\bigcup_{x \in D}f(x)D⊆Cl(X)D⊆Cl(X)D \subseteq Cl(X)DDD ชุดกำกับการถูกกำหนดไว้ดังนี้: poset คือชุดกำกับ IFFเช่นและZ ย่อมาจาก cliques X:เชื่อมโยงกัน\}D⊆D⊆D \subseteq ∀x,x′∈D∀x,x′∈D \forall x, x' \in D ∃z∈D∃z∈D \exists z \in D x⊆zx⊆z x \subseteq zx′⊆zx′⊆zx' \subseteq z Cl(X)Cl(X)Cl(X) {x⊆|X|∣a,b∈x⇒a{x⊆|X|∣a,b∈x⇒a\{x \subseteq |X| \mid a,b \in x \Rightarrow ab}b}b \} หนังสือหลายเล่มให้คำจำกัดความของฟังก์ชั่นสก็อตต์อย่างต่อเนื่องแต่ไม่ใช่ครูของฉัน เขาให้คำจำกัดความต่อเนื่องกับเรานี้: …

4
ภาษาของโปรแกรมสามารถอ่อนไหวได้เพียงพอที่จะอนุญาตให้โปรแกรมขยายความหมายของภาษาหรือไม่
ด้วยการอ้างอิงถึงคุณสมบัติในภาษาต่างๆเช่น ruby ​​(และ javascript) ซึ่งอนุญาตให้โปรแกรมเมอร์ขยาย / ลบล้างคลาสได้ตลอดเวลาหลังจากกำหนด (รวมถึงคลาสเช่น String) ในทางทฤษฎีแล้วมันเป็นไปได้ในทางทฤษฎีในการออกแบบภาษา ความหมายของมัน เช่นทับทิมไม่อนุญาตให้มีการสืบทอดหลายอย่าง แต่ฉันสามารถขยาย / ลบล้างพฤติกรรมภาษาเริ่มต้นเพื่ออนุญาตการใช้งานการสืบทอดหลายมรดก มีภาษาอื่นที่อนุญาตสิ่งนี้หรือไม่? อันที่จริงเรื่องนี้เป็นเรื่องของนักออกแบบภาษาหรือไม่? ดูทางเลือกของการใช้ ruby ​​สำหรับการสร้างเฟรมเวิร์กเรลสำหรับการพัฒนาเว็บแอปพลิเคชันภาษาดังกล่าวอาจมีประสิทธิภาพมากในการอนุญาตการออกแบบเฟรมเวิร์ก (หรือ DSL) สำหรับการใช้งานที่หลากหลาย

2
คำถามใดที่ความหมายเชิง Denotational สามารถตอบได้ว่าความหมายเชิงปฏิบัติการไม่สามารถทำได้?
ฉันคุ้นเคยกับความหมายในการปฏิบัติงาน (ทั้งขั้นตอนเล็กและขั้นตอนใหญ่) เพื่อกำหนดภาษาโปรแกรม ฉันสนใจที่จะเรียนรู้ความหมายเชิงลบเช่นกัน แต่ฉันไม่แน่ใจว่ามันจะคุ้มค่ากับความพยายามหรือไม่ ฉันจะเรียนรู้เนื้อหาเดียวกันจากมุมมองที่ต่างออกไปหรือมีข้อมูลเชิงลึกที่ฉันจะได้รับจากการเข้าใจความหมายเชิง Denotational หรือไม่?

2
จุดบรรจบกันของระบบการเขียนใหม่ที่เรียบง่าย
สมมติว่าเรามีภาษาง่าย ๆ ที่ประกอบด้วยข้อกำหนด: truetrue\mathtt{true} falsefalse\mathtt{false} ถ้าเป็นเทอมดังนั้นฉันคือft1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 ตอนนี้สมมติกฎการประเมินผลเชิงตรรกะดังต่อไปนี้: iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t′1ift1thent2elset3→ift′1thent2elset3[E-If]iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t1′ift1thent2elset3→ift1′thent2elset3[E-If] \begin{gather*} \dfrac{} {\mathtt{if}\: \mathtt{true} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_2} \text{[E-IfTrue]} \quad \dfrac{} {\mathtt{if}\: \mathtt{false} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_3} \text{[E-IfFalse]} \\ \dfrac{t_1 \to t_1'} {\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to \mathtt{if}\: t_1' \:\mathtt{then}\: t_2 …

3
แคลคูลัสกับภาษาการเขียนโปรแกรมต่างกันอย่างไร
ฉันคิดว่าฉันค่อนข้างสับสนเกี่ยวกับสิ่งที่เรียกว่าแคลคูลัสและสิ่งที่เรียกว่าภาษาการเขียนโปรแกรม ฉันมักจะคิดและอาจได้รับแจ้งว่าแคลคูลัสเป็นระบบที่เป็นทางการสำหรับการให้เหตุผลเกี่ยวกับความเท่าเทียมกันของโปรแกรม โปรแกรมมีความหมายในการปฏิบัติงานที่ระบุโดยเครื่องซึ่งควร (ฉันคิดว่า?) กำหนดได้ ด้วยวิธีนี้แคลคูลัส (ที่ถูกต้อง) สำหรับภาษาเป็นวิธีการพิสูจน์สำหรับการเทียบเท่าของโปรแกรมLLL ดูเหมือนจะเป็นการแบ่งที่สมเหตุสมผลสำหรับฉัน แต่นี่เป็นความหมายที่ยอมรับกันโดยทั่วไปหรือไม่ หรืออาจจะผิดก็ได้ เกี่ยวข้องทำไมความหมายของการดำเนินงานแบบ nondeterministic (สมมติว่ามันไหลมารวมกัน)? อะไรคือสิ่งที่ได้รับจากการเปิดตัวเลือกกลยุทธ์? ฉันขอขอบคุณการชี้แจงเกี่ยวกับสิ่งเหล่านี้ และการอ้างอิงที่เป็นรูปธรรมมากยิ่งขึ้น! ขอบคุณ!

1
ความหมายคืออะไร?
มีภาษายอดนิยมมากมาย แต่นักวิทยาศาสตร์คอมพิวเตอร์บอกเราว่าเพื่อให้เข้าใจถึงพฤติกรรมของโปรแกรมในภาษาเหล่านั้นอย่างแน่นอนและโต้แย้งอย่างไร้เหตุผลกับพฤติกรรมของโปรแกรม (เช่นพิสูจน์ตัวตนของพวกเขา) เราจำเป็นต้องแปลมันเป็นภาษาอื่นที่เข้าใจกันดี พวกเขาเรียกภาษานี้ว่า "ความหมาย" ผู้เขียนเสนอหนึ่งในหลายความหมาย พวกเขาอธิบายความหมายของสิ่งปลูกสร้างและวิธีที่คุณสามารถแปลภาษาของคุณเป็นของพวกเขา เมื่อคุณทำอย่างนั้นทุกคนจะเข้าใจโปรแกรมของคุณแน่นอนพวกเขาจะพูด ดูดี แต่ฉันไม่เข้าใจบางสิ่ง พวกเขาบอกเราหรือไม่ว่าพวกเขาแนะนำภาษาอื่นให้เข้าใจภาษาแรก ทำไมเราเข้าใจดีกว่าต้นฉบับ? ทำไมความหมายนี้ดีกว่านั้น ทำไมไม่เรียนรู้ความหมายของ C ทันทีแทนที่จะประดิษฐ์ภาษาอื่นเพื่ออธิบายความหมายของ C? เช่นเดียวกับไวยากรณ์ ทำไมฉันไม่ถามคำถามเดียวกันเกี่ยวกับไวยากรณ์ ป.ล.ในความคิดเห็นที่ฉันได้ยินว่าความหมายไม่ได้หมายถึงภาษาอื่นหรือการแปลเป็น แต่ความหมายที่เป็นทางการสำหรับ VHDL บอกว่าถ้าคุณเข้าใจบางสิ่งในทางเดียวคุณจะไม่เข้าใจและสามารถระบุ "ความหมายของความหมาย" ถ้าเราจัดหาภาษาที่มีกลไกที่แปลมันเป็นภาษาอื่น (ที่รู้จัก) นั่นคือ "ความหมายคือความสัมพันธ์ระหว่างระบบที่เป็นทางการ" Hennessy ในซีแมนทิกส์ของ Programming Languagesกล่าวว่าซีแมนติกส์อนุญาตให้มีการประมวลผลอย่างเป็นทางการของโปรแกรม "ความหมาย" เมื่อซีแมนทิกส์ถูกจัดให้เป็น BNF หรือ Syntax Diagram ระบบที่เป็นทางการคืออะไรถ้าไม่ใช่ภาษา? PS2ฉันสามารถพูดได้ว่าการสังเคราะห์ HW ของโปรแกรม HDL ที่กำหนดให้เป็นการเชื่อมต่อโครงข่ายประตูเป็นกระบวนการสกัดความหมายหรือไม่? เราแปลคำอธิบาย (ระดับสูง) เป็นภาษา (ระดับต่ำ) ที่เราเข้าใจหลังจากนั้น

1
เครื่องมือสร้างต้นแบบความหมายภาษาโปรแกรม
มีเครื่องมือใดสำหรับการสร้างต้นแบบ semantics ภาษาการเขียนโปรแกรมและระบบชนิดและยังช่วยให้การตรวจสอบรูปแบบของคุณสมบัติมาตรฐานเช่นความแข็งแรงของประเภท? ฉันถามสิ่งนี้เพราะฉันกำลังอ่านหนังสือเกี่ยวกับAlloyและมีฟังก์ชั่นที่แน่นอนที่ฉันต้องการ แต่สำหรับรุ่นที่แสดงโดยใช้ตรรกะเชิงสัมพันธ์ ฉันรู้เรื่องOttแต่ไม่มีความสามารถในการ "ตรวจสอบแบบจำลอง" เนื่องจากมันมุ่งเน้นไปที่การสร้างรหัสสำหรับระบบผู้ช่วยที่พิสูจน์ได้ การอ้างอิงถึงการมีอยู่ของเครื่องมือดังกล่าวจะดีมาก

1
การแยกประเภทการปรับแต่ง
ที่ทำงานฉันได้รับมอบหมายให้อนุมานข้อมูลบางประเภทเกี่ยวกับภาษาแบบไดนามิก ฉันเขียนลำดับของข้อความไปยังletนิพจน์ที่ซ้อนกันเช่น: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } เนื่องจากฉันเริ่มต้นจากข้อมูลประเภททั่วไปและพยายามอนุมานประเภทที่เฉพาะเจาะจงมากขึ้นตัวเลือกที่เป็นธรรมชาติคือประเภทการปรับแต่ง ตัวอย่างเช่นตัวดำเนินการตามเงื่อนไขส่งคืนการรวมของประเภทของสาขาที่เป็นจริงและเท็จ …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

2
วิธีจัดการกับอาร์เรย์ในระหว่างการพิสูจน์ความถูกต้องของ Hoare-style
ในการอภิปรายคำถามนี้ Gilles กล่าวอย่างถูกต้องว่าการพิสูจน์ความถูกต้องใด ๆ ของอัลกอริทึมที่ใช้อาร์เรย์ต้องพิสูจน์ว่าไม่มีการเข้าถึงอาร์เรย์นอกขอบเขต ขึ้นอยู่กับรุ่นรันไทม์สิ่งนี้จะทำให้เกิดข้อผิดพลาดรันไทม์หรือการเข้าถึงองค์ประกอบที่ไม่ใช่อาร์เรย์ เทคนิคหนึ่งที่พบบ่อยในการดำเนินการพิสูจน์ความถูกต้องเช่น (อย่างน้อยในการศึกษาปริญญาตรีและอาจจะอยู่ในการตรวจสอบโดยอัตโนมัติ) โดยใช้ตรรกะโฮร์ ฉันไม่ทราบว่าชุดกฎมาตรฐานมีอะไรที่เกี่ยวข้องกับอาร์เรย์ ดูเหมือนว่าพวกเขาจะถูก จำกัด ให้ตัวแปรตัวแปร ฉันจินตนาการถึงการเพิ่มสัจพจน์ของแบบฟอร์ม {0≤i<A.length∧P[A[i]/E]} A[i]:=E; {P}{0≤i<A.length∧P[A[i]/E]} A[i]:=E; {P}\qquad \displaystyle \frac{}{\{0 \leq i \lt A.\mathrm{length} \land {P[A[i]/E]} \}\ A[i] := E;\ \{P\}} แต่ก็ไม่เป็นที่ชัดเจนกับผมว่าคุณจะจัดการกับการเข้าถึงอาร์เรย์บนด้านขวามือคือถ้ามันเป็นส่วนหนึ่งของการแสดงออกที่ซับซ้อนในบางคำสั่งx : = EEEEx:=Ex:=Ex := E วิธีการเข้าถึงอาร์เรย์สามารถสร้างแบบจำลองในตรรกะของ Hoare เพื่อให้ไม่มีการเข้าถึงที่ไม่ถูกต้องสามารถและต้องได้รับการพิสูจน์ความถูกต้องของโปรแกรม? รู้รอบอาจสันนิษฐานได้ว่าเราไม่อนุญาตให้ใช้องค์ประกอบของอาร์เรย์ในงบนอกเหนือจากหรือเป็นส่วนหนึ่งของEบางตัวในx : = Eเนื่องจากไม่ได้ จำกัด การแสดงออก เราสามารถกำหนดตัวแปรชั่วคราวตามค่าที่ต้องการเช่น write t …

3
เริ่มต้นใช้งานการวิเคราะห์โปรแกรม
ฉันกำลังมองหาแหล่งข้อมูลเกี่ยวกับการเริ่มต้นกับการวิเคราะห์โปรแกรม หนังสือเล่มเดียวที่ฉันพบในหัวข้อคือหนังสือNielson & Nielson นอกเหนือจากนั้นดูเหมือนว่าจะมีหนังสือ "คอมไพเลอร์" เท่านั้นที่ "การวิเคราะห์โปรแกรม" จะเป็นบทหรืออะไรก็ตามที่อยู่ในบรรทัดเหล่านั้น คนอื่นรู้จักทรัพยากรอื่น ๆ บ้างไหม?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.