คำถามติดแท็ก pl.programming-languages

ภาษาการเขียนโปรแกรมโดยเฉพาะการเพ่งความสนใจไปที่ความหมายของพวกเขา

3
ความหมายอย่างเป็นทางการของภาษาโปรแกรม
ฉันยังใหม่กับทฤษฎีภาษาโปรแกรมและฉันกำลังมองหาแหล่งข้อมูลที่ดีสำหรับทรัพยากรสำหรับความหมายอย่างเป็นทางการของภาษาโปรแกรม กำลังมองหาความหมายของการปฏิบัติการเชิงโครงสร้างโดยเฉพาะ ฉันได้รับคำแนะนำหนังสือ แต่ฉันกำลังมองหาแหล่งข้อมูลในระดับเบื้องต้น ยินดีต้อนรับบทเรียนโดยเฉพาะเว็บไซต์และแนะนำหนังสือฟรี

3
ผู้อ่านพระนักเขียน
ให้CCCเป็นCCC Let (×)(×)(\times)เป็น bifunctor สินค้าที่อยู่ในCCCCในฐานะที่เป็นแมวคือ CCC เราสามารถแกง(×)(×)(\times) : curry(×):C→(C⇒C)curry(×):C→(C⇒C)curry (\times) : C \rightarrow(C \Rightarrow C) curry(×)A=λB.A×Bcurry(×)A=λB.A×Bcurry (\times) A = \lambda B. A \times B หมวด Functor C⇒CC⇒CC \Rightarrow Cมีโครงสร้างแบบ monoidal ปกติ หนังสือในC⇒CC⇒CC \Rightarrow Cเป็น monad ในCCCC เราพิจารณาผลิตภัณฑ์ จำกัด เป็นโครงสร้าง monoidal ในCCCC curry(×)1≅idcurry(×)1≅idcurry (\times) 1 \cong id ∀A B.curry(×)(A×B)≅(curry(×)A)∘(curry(×)B)∀A B.curry(×)(A×B)≅(curry(×)A)∘(curry(×)B)\forall A\ …

2
สภาพที่เป็นอยู่ของทฤษฎีหมวดหมู่และพระในการวิจัยวิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี?
พื้นหลัง ฉันเป็นนักศึกษาระดับปริญญาตรีที่มีความสนใจในการวิจัยที่เกี่ยวข้องกับทฤษฎีหมวดหมู่ monads และ Haskell และฉันต้องการค้นหาหัวข้อสำหรับวิทยานิพนธ์ระดับปริญญาตรีของฉันในพื้นที่นั้น ฉันดูกระดาษแล้ว Eugenio Moggi , " พัฒนาการของการคำนวณและ Monads ", 1991, และฉันยังไม่เข้าใจมากนัก ฉันอาจต้องใช้เวลาพอสมควรในการทำความเข้าใจ แต่ก่อนที่จะใช้เวลามากขึ้นในการศึกษามันฉันต้องการที่จะได้รับความเข้าใจที่ดีขึ้นของสนามและศักยภาพการวิจัยของ ฉันเพิ่งพูดคุยกับอาจารย์ของฉันเกี่ยวกับเรื่องนี้และเขาบอกฉันว่า monads เป็นแฟชั่นในชุมชนการวิจัยย้อนกลับไปใน 90s แต่ทุกวันนี้พวกเขาล้าสมัย ดังนั้นตอนนี้ฉันกำลังมองหางานล่าสุดที่เกี่ยวข้องกับพระและสงสัยว่า: วิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎีในปัจจุบันมีงานวิจัยใดบ้างที่เกี่ยวข้องกับหมวดหมู่ทฤษฎีและพระสงฆ์ งานวิจัยประเภทใดที่ถูกสร้างขึ้นหรือเสนอในงานของ E. Moggi เกี่ยวกับพระในทฤษฎีของการเขียนโปรแกรม มีการติดตามหรือการวิจัยที่เกี่ยวข้องกับบทความของเขาหรือไม่?

1
พารามิเตอร์และการกำจัดโปรเจคสำหรับเร็กคอร์ดที่ต้องพึ่งพา
เป็นที่ทราบกันดีว่าใน System F คุณสามารถเข้ารหัสผลิตภัณฑ์ไบนารี่ได้ด้วยประเภท แล้วคุณสามารถกำหนดฟังก์ชั่นการฉาย\ pi_1: A \ ครั้ง B \ เป็น Aและ\ pi_2: A \ B ครั้ง \ to B× B ≜ ∀ อัลฟ่า( A → B → α ) → αA×B≜∀α.(A→B→α)→α A \times B \triangleq \forall\alpha.\; (A \to B \to \alpha) \to \alpha π 2 : A × …

1
(คุณ) คุณจำลองการออกอากาศในไพแคลคูลัสได้อย่างไร?
คุณสามารถสร้างแบบจำลองการออกอากาศที่เชื่อถือได้ใน pi-แคลคูลัสได้ไหม? ถ้าเป็นเช่นนั้นได้อย่างไร ถ้าไม่: มีจีบราส์กระบวนการที่คล้ายกันที่คุณสามารถ? สิ่งที่ฉันได้ลอง: ถ้าผู้ส่งต้องการส่งข้อความทุกเพื่อP nคุณสามารถเขียน ! ( ¯ x Y ) Sและไปxแต่คุณจะรับประกันได้อย่างไรว่ามีการทำซ้ำครั้งนั่นคือไม่มีข้อความใดหายไป? ผมไม่ทราบว่าล่วงหน้า เป็นไปได้ (เท่านั้น) กับการส่งข้อความหลาย ๆ ไปมาระหว่างกระบวนการทั้งหมดที่เกี่ยวข้อง?SSSyYyP1P1P_1PnPnP_nx¯¯¯y).Sx¯y).S\overline{x}y).S x ( Z ) P n ( ¯ x y ) n nx(z).P1x(z).P1x(z).P_1x(z).Pnx(z).Pnx(z).P_n(x¯¯¯y)(x¯y)(\overline{x}y)nnnnnn ... หรือฉันเข้าใจผิดเกี่ยวกับพฤติกรรมการจำลองแบบที่ไม่ได้กำหนดไว้หรือไม่

3
อะไรคือบทบาทของ predicativity ในคำจำกัดความอุปนัยในทฤษฎีประเภท?
บ่อยครั้งที่เราต้องการกำหนดวัตถุตามกฎการอนุมาน กฎเหล่านั้นแสดงถึงฟังก์ชั่นการสร้างFซึ่งเมื่อมันเป็นเนื่องถัวเฉลี่ยจุดอย่างน้อยคงμ F เราใช้: = μ Fจะเป็น "นิยามอุปนัย" ของ ยิ่งกว่านั้น monotonicity ของFทำให้เราสามารถให้เหตุผลกับ "หลักการของการเหนี่ยวนำ" เพื่อกำหนดว่าเมื่อใดที่เซตประกอบด้วยA (เช่นเมื่อสมบัติครอบคลุมทั่วA )A∈UA∈ยูA \in UFFFμFμF\mu FA:=μFA=μFA := \mu FAAAFFFAAAAAA ใน Coq ตรงนี้เพื่อเขียนนิยามของกับคำแนะนำอย่างชัดเจน ในขณะที่คำจำกัดความนี้หมายถึงฟังก์ชั่นเฉพาะF , ฟังก์ชั่นนั้นไม่จำเป็นต้องเป็นแบบโมโนโทนิก Coq จึงใช้การตรวจสอบวากยสัมพันธ์บางอย่างเพื่อรับประกัน "ความมีรูปแบบที่ดี" ของคำจำกัดความ สำหรับการประมาณค่าบางอย่างมันจะปฏิเสธการเกิดขึ้นของAในตำแหน่งลบในประเภทของคำแนะนำInductiveผมndยูคเสื้อผมโวลต์อี\mathtt{Inductive}AAAFFFAAA (หากความเข้าใจของฉันถึงจุดนี้มีข้อบกพร่องโปรดแก้ไขฉัน!) ก่อนคำถามบางคำถามในบริบทของ Coq: 1) ไม่ตรวจสอบประโยคใน Coq เพียงทำหน้าที่เพื่อให้มั่นใจว่านิยามของเป็นกริยา ? (ถ้าเป็นเช่นนั้นการไม่แสดงอารมณ์นั้นเป็นวิธีเดียวที่นิยามจะไม่ถูกต้องหรือไม่) หรือมันกำลังตรวจสอบความน่าเบื่อหน่ายหรือไม่? (ตามลําดับคือสิ่งที่ไม่สามารถพูดซ้ำได้สิ่งที่อาจฆ่ามัน)AAA 2) ไม่เช่นที่เกิดขึ้นในเชิงลบของจำเป็นต้องหมายความว่าความหมายก็คือ impredicative / ไม่ใช่ต่อเนื่อง? หรือ …

3
มีทฤษฎีภาษาการเขียนโปรแกรมที่อธิบายการทำงานของฟังก์ชั่นต่างประเทศ (FFI) และการผูกหลายภาษา?
มีทฤษฎีภาษาการเขียนโปรแกรมที่อธิบายการทำงานของฟังก์ชั่นต่างประเทศ (FFI) และการผูกหลายภาษา? ฉันได้ถามปัญหาการใช้งานบางอย่างกับ stackoverflowซึ่งไม่เหมาะสมที่นี่ แต่ฉันต้องการถามจากมุมมองของไซต์นี้และดูว่าฉันจะได้อะไรจากที่นี่ ขอบคุณคำตอบของคุณจริงๆ! ขอบคุณ Dave Clarke สำหรับคำตอบของเขาในเมตาดาต้า!

4
โปรแกรมให้เหตุผลเกี่ยวกับซอร์สโค้ดของตัวเอง
แรงบันดาลใจสำหรับคำถามนี้คือคำถามต่อไปนี้ (คลุมเครือ): อะไรคือภาษาการเขียนโปรแกรม / รากฐานที่เป็นตรรกะสำหรับการมี AI ซึ่งอาจมีเหตุผลเกี่ยวกับรหัสที่มาของตัวเองและแก้ไขได้หรือไม่ นี่ไม่ใช่ทั้งหมดที่เข้มงวดดังนั้นนี่คือความพยายามของฉันที่จะดึงคำถามที่เป็นรูปธรรมออกมา มีสองสิ่งที่ฉันสนใจ: (A) ภาษาการเขียนโปรแกรม P ที่สามารถเป็นตัวแทนและจัดการโปรแกรมของตัวเองเป็นโปรแกรมประเภทข้อมูล (เช่น AST) (หากต้องการวัตถุชนิดโปรแกรมสามารถแปลงเป็นสตริงซึ่งเป็นข้อความของโปรแกรมที่ถูกต้องในภาษานั้นจะเป็นสิ่งที่ตรงกันข้ามกับสิ่งที่คอมไพเลอร์ทำ) (B) วิธีการให้เหตุผลเกี่ยวกับสิ่งที่โปรแกรมในภาษา P ทำ นี่คือสองระดับฉันคิดเกี่ยวกับมัน: ภาษาอื่น Q (พร้อมความสามารถในการพิสูจน์ทฤษฎี) ซึ่งเป็นแบบจำลองสิ่งที่โปรแกรม P ทำ ควรสามารถแสดงและพิสูจน์ข้อความเช่น "ผลลัพธ์ของการรันโปรแกรม p คือ foo" วิธีให้เหตุผลเกี่ยวกับสิ่งที่โปรแกรม p: โปรแกรมทำในภาษา P เอง (ดังนั้นเราจึงใช้ P = Q ด้านบน) ระดับนี้มีการดำเนินการในระดับใดหรือความก้าวหน้าในทิศทางนี้คืออะไร? อะไรคืออุปสรรคในทางปฏิบัติ ในแง่ของความตั้งใจดั้งเดิมของคำถามวิธีที่ดีที่สุดในการทำให้เป็นปัญหาคืออะไร? * * * * เป็นคำตอบที่แสดง …

2
ความสมบูรณ์เต็มรูปแบบ vs สิ่งที่เป็นนามธรรมของการแปลโปรแกรม
ความพยายามในการตรวจสอบคอมไพเลอร์มักจะลงมาเพื่อพิสูจน์คอมไพเลอร์อย่างสมบูรณ์แบบ: มันรักษาและสะท้อนความเท่าเทียม (ตามบริบท) แทนที่จะให้หลักฐานที่เป็นนามธรรมอย่างเต็มรูปแบบงานตรวจสอบคอมไพเลอร์ล่าสุด (อิงตามหมวดหมู่) โดย Hasegawa [ 1 , 2 ] และ Egger et อัล [ 3 ] พิสูจน์ความครบถ้วนสมบูรณ์ของการแปล CPS ที่หลากหลาย คำถาม: อะไรคือความแตกต่างระหว่างความครบถ้วนสมบูรณ์และนามธรรมที่สมบูรณ์? สำหรับฉันแล้วความสมบูรณ์ดูเหมือนว่าการสะท้อนความเท่าเทียมกันสำหรับการแปลและความบริบูรณ์ดูเหมือนจะเป็นผลมาจากการรักษาสมดุล หมายเหตุ : ทั้ง Curien [ 7 ] และ Abramsky [ 8 ] สำรวจความสัมพันธ์ระหว่างความแน่นอนความเป็นนามธรรมเต็มและความสมบูรณ์แบบในระดับหนึ่ง ฉันสงสัยว่าแหล่งข้อมูลเหล่านี้อาจมีคำตอบสำหรับคำถามของฉัน แต่หลังจากอ่านพื้นผิวฉันยังไม่ได้ยืนยันว่า พื้นหลังบางส่วน : คำว่า "full ครบถ้วน" ได้รับการประกาศเกียรติคุณจาก Abramsky และ Jagadeesan [ …

1
MALL + ประเภทการเรียกซ้ำไม่ จำกัด ทัวริงเสร็จสมบูรณ์หรือไม่
ถ้าคุณมองไปที่ combinators recursive ใน untyped แลมบ์ดาแคลคูลัสเช่น Combinator Y Combinator หรือโอเมก้า: ωY==(λx.xx)(λx.xx)λf.(λx.f(xx))(λx.f(xx))ω=(λx.xx)(λx.xx)Y=λf.(λx.f(xx))(λx.f(xx)) \begin{array}{lcl} \omega & = & (\lambda x.\,x\;x)\;(\lambda x.\,x\;x)\\ Y & = & \lambda f.\,(\lambda x.\,f\;(x\;x))\; (\lambda x.\,f\;(x\;x)) \\ \end{array} เป็นที่ชัดเจนว่า combinators เหล่านี้ทั้งหมดจบลงด้วยการทำซ้ำตัวแปรหนึ่งในคำจำกัดความของพวกเขา นอกจากนี้ทุก combinators เหล่านี้เป็น typeable ในแคลคูลัสแลมบ์ดาเพียงแค่พิมพ์ถ้าคุณขยายประเภท recursive μα.A(α)μα.A(α)\mu\alpha.\,A(\alpha)ซึ่งαα\alphaได้รับอนุญาตให้เกิดขึ้นในทางลบในประเภทซ้ำ อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าคุณเพิ่มชนิดเรียกซ้ำแบบเต็ม (ลบเกิดขึ้น) ลงในแฟรกเมนต์เชิงเส้นของตรรกะเชิงเส้น (เช่น MALL) แบบไม่มีเลขชี้กำลัง จากนั้นคุณไม่มีเลขชี้กำลัง !A!A!A!A≜μα.I&A&(α⊗α)!A≜μα.I&A&(α⊗α) !A \triangleq …

2
การใช้ความสัมพันธ์เสมือนจริง / ความสัมพันธ์ที่แตกต่างกัน / ความสัมพันธ์ซิกแซก?
ชุดและB ที่ให้, ความสัมพันธ์ที่สมบูรณ์( ∼ ) ⊆ A × Bระหว่างพวกมันถูกกำหนดให้เป็นความสัมพันธ์ที่ตอบสนองคุณสมบัติดังต่อไปนี้:AAABBB (∼)⊆A×B(∼)⊆A×B(\sim) \subseteq A \times B หาก~ ขและ' ~ B 'และ~ ข'แล้ว' ~ข a∼ba∼ba \sim ba′∼b′a′∼b′a' \sim b'a∼b′a∼b′a \sim b'a′∼ba′∼ba' \sim b ความสัมพันธ์ที่แตกต่างกันเป็นลักษณะทั่วไปของแนวคิดของความสัมพันธ์เชิงสมดุลบางส่วนซึ่งอนุญาตให้เรานิยามแนวคิดของความเท่าเทียมกันจากเซตที่แตกต่างกัน เป็นผลให้พวกเขาเป็นที่รู้จักกันเป็นเสมือน (PER) (QPERs) และพวกเขายังเป็นที่รู้จักกันในนามความสัมพันธ์ซิกแซกเนื่องจากภาพดังต่อไปนี้: ฉันกำลังเขียนกระดาษที่ใช้พวกเขา แต่ฉันมีปัญหาในการติดตามการอ้างอิงที่ดีสำหรับการใช้งานในความหมาย มาร์ตินฮอฟแมนใช้พวกเขาในความถูกต้องของผลตามโครงการแปลง ฉันได้เห็นการกล่าวถึง (แต่ไม่มีการอ้างอิงที่ดี) ที่อ้างว่า Tennant และ Takeyama ได้เสนอการใช้งานของพวกเขาเช่นกัน พวกเขาเป็นความคิดที่น่ารักที่ฉันมีปัญหาในการเชื่อว่าการใช้งานเฉพาะของพวกเขานั้นเป็นต้นฉบับ ฉันขอขอบคุณการอ้างอิงเพิ่มเติมใด ๆ

4
Parametricity ที่ไม่ดีเทียบกับไบนารีของพารามิเตอร์
เมื่อไม่นานมานี้ฉันสนใจเรื่องพาราเมตริกหลังจากเห็นกระดาษ LICS 2012 ของ Bernardy และ Moulin ( https://dl.acm.org/citation.cfm?id=2359499 ) ในบทความนี้พวกเขาปรับพารามิเตอร์ภายในแบบเอกภาพในระบบชนิดบริสุทธิ์ที่มีชนิดที่ขึ้นต่อกันและบอกใบ้ถึงวิธีการที่คุณสามารถขยายการก่อสร้างไปสู่สิ่งที่ต้องการโดยพลการ ฉันเคยเห็นพารามิเตอร์เลขฐานสองที่กำหนดไว้ก่อนหน้าเท่านั้น คำถามของฉันคืออะไรตัวอย่างของทฤษฎีบทที่น่าสนใจที่สามารถพิสูจน์ได้โดยใช้เลขฐานสองเป็นเลขคู่ แต่ไม่ใช่กับสมการเชิงอนุพันธ์ มันน่าสนใจที่จะเห็นตัวอย่างของทฤษฎีบทที่พิสูจน์ด้วยพารามิเตอร์ระดับตติยภูมิ แต่ไม่ใช่ด้วยระบบเลขฐานสอง (แม้ว่าฉันเคยเห็นหลักฐานว่า n-parametricity เทียบเท่ากับ n> = 2: ดูhttp: //www.sato.kuis .kyoto-u.ac.jp / ~ takeuti / art / par-tlca.ps.gz )

1
การสืบทอดนั้นแตกต่างจากการพิมพ์ย่อยอย่างไร
ในมุมมองภาษาการเขียนโปรแกรมการพิมพ์ย่อยหมายถึงอะไร ฉันได้ยินมาว่า "มรดกไม่ใช่การพิมพ์ย่อย" แล้วความแตกต่างระหว่างการสืบทอดและการพิมพ์ย่อยคืออะไร

3
เมื่อใดที่เราสามารถพูดได้ว่าสองโปรแกรมนั้นแตกต่างกัน
ไตรมาสที่ 1 เมื่อใดที่เราสามารถพูดได้ว่าสองโปรแกรม (เขียนด้วยภาษาโปรแกรมบางอย่างเช่น C ++) แตกต่างกันอย่างไร สุดขีดแรกคือการพูดว่าสองโปรแกรมเทียบเท่า iff พวกเขาเหมือนกัน สุดขีดอีกอันหนึ่งคือการพูดว่าโปรแกรมสองโปรแกรมนั้นมีค่าเทียบเท่าหากพวกเขาคำนวณฟังก์ชันเดียวกัน (หรือแสดงพฤติกรรมที่สังเกตได้เหมือนกันในสภาพแวดล้อมที่คล้ายกัน) แต่สิ่งเหล่านี้ไม่ดี: ไม่ใช่ทุกโปรแกรมที่ตรวจสอบสภาพดั้งเดิมเหมือนกัน เราสามารถเพิ่มบรรทัดของโค้ดโดยไม่มีผลกับผลลัพธ์และเราจะยังคงพิจารณาว่าเป็นโปรแกรมเดียวกัน ไตรมาสที่ 2 โปรแกรมและอัลกอริทึมเป็นวัตถุชนิดเดียวกันหรือไม่ ถ้าไม่คำจำกัดความของอัลกอริทึมคืออะไรและแตกต่างจากคำจำกัดความของโปรแกรมอย่างไร เมื่อใดที่เราสามารถบอกได้ว่าอัลกอริธึมทั้งสองนั้นเท่ากัน?

1
รักษาความสงบเรียบร้อยในรายการในในเวลา
ปัญหาการบำรุงรักษาคำสั่งซื้อ (หรือ "การรักษาคำสั่งซื้อในรายการ") คือการสนับสนุนการดำเนินงาน: singleton: สร้างรายการที่มีหนึ่งรายการส่งคืนตัวชี้ไปยังรายการนั้น insertAfter: กำหนดตัวชี้ไปยังรายการแทรกรายการใหม่หลังจากส่งคืนตัวชี้ไปยังรายการใหม่ delete: กำหนดตัวชี้ไปยังรายการเอาออกจากรายการ minPointer: กำหนดสองพอยน์เตอร์ให้กับรายการในรายการเดียวกันส่งคืนค่าที่ใกล้กับด้านหน้าของรายการมากขึ้น ฉันทราบวิธีแก้ไขปัญหาสามข้อที่ดำเนินการทั้งหมดในเวลาตัดจำหน่าย พวกเขาทั้งหมดใช้การคูณO ( 1 )O(1)O(1) Athanasios K. Tsakalidis: การรักษาลำดับในรายการที่เชื่อมโยงทั่วไป Dietz, P. , D. Sleator, สองอัลกอริทึมสำหรับการรักษาความสงบเรียบร้อยในรายการ Michael A. Bender, Richard Cole, Erik D. Demaine, Martin Farach-Colton และ Jack Zito“ สองอัลกอริทึมแบบง่ายสำหรับการคงคำสั่งในรายการ” สามารถเก็บรักษาลำดับในรายการในเวลาตัดจำหน่ายโดยไม่ใช้การดำเนินการทางคณิตศาสตร์ใด ๆ ที่ไม่ได้อยู่ในหรือไม่?O ( 1 )O(1)O(1)C0Aค0AC^0

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