อะไรคือความแตกต่างระหว่างกระบวนทัศน์การเขียนโปรแกรมเชิงประกาศและขั้นตอน ? คุณช่วยยกตัวอย่างได้ไหม
มีกระบวนทัศน์การเขียนโปรแกรมอะไรอีกบ้าง?
อะไรคือความแตกต่างระหว่างกระบวนทัศน์การเขียนโปรแกรมเชิงประกาศและขั้นตอน ? คุณช่วยยกตัวอย่างได้ไหม
มีกระบวนทัศน์การเขียนโปรแกรมอะไรอีกบ้าง?
คำตอบ:
มีหลายย่อยกระบวนทัศน์ของกระบวนทัศน์การเขียนโปรแกรมที่จำเป็นเช่นมีขั้นตอนหรือเชิงวัตถุกระบวนทัศน์การเขียนโปรแกรม
ในกระบวนทัศน์การเขียนโปรแกรมที่จำเป็นคุณจะอธิบายอัลกอริทึมทีละขั้นตอนในระดับนามธรรมต่างๆ
ตัวอย่างภาษาโปรแกรมที่สนับสนุนกระบวนทัศน์ขั้นตอน:
โดยทั่วไปหมายถึงภาษาที่แสดงลำดับชั้นของประเภทที่สืบทอดทั้งวิธีการและสถานะจากประเภทพื้นฐานไปยังประเภทที่ได้รับ แต่ยังรวมถึง JavaScript ที่ใช้ต้นแบบที่ผิดปกติ
ตัวอย่างภาษาการเขียนโปรแกรมที่รองรับกระบวนทัศน์ OO:
มีกระบวนทัศน์ย่อยหลายประการของกระบวนทัศน์การเขียนโปรแกรมเชิงประกาศเช่นกระบวนทัศน์การเขียนโปรแกรมเชิงฟังก์ชันหรือตรรกะ
ในกระบวนทัศน์การเขียนโปรแกรมแบบเปิดเผยคุณอธิบายผลลัพธ์หรือเป้าหมายและได้รับผ่านทาง " กล่องดำ " ตรงกันข้ามกับความจำเป็น
ตัวอย่างของภาษาโปรแกรมที่สนับสนุนกระบวนทัศน์การเขียนโปรแกรมแบบเปิดเผย:
การเขียนโปรแกรมเชิงฟังก์ชันเน้นการประยุกต์ใช้ฟังก์ชันโดยไม่มีผลข้างเคียงและไม่มีสถานะที่เปลี่ยนแปลงได้ ระบบประกาศด้านบนแสดงลักษณะบางประการของการเขียนโปรแกรมเชิงฟังก์ชัน
ตัวอย่างของภาษาโปรแกรมที่สนับสนุนกระบวนทัศน์เชิงฟังก์ชันที่เปิดเผย:
การเขียนโปรแกรมแบบสำแดงคือที่ที่คุณพูดในสิ่งที่คุณต้องการโดยไม่ต้องบอกว่าต้องทำอย่างไร ด้วยการเขียนโปรแกรมขั้นตอนคุณต้องระบุขั้นตอนที่แน่นอนเพื่อให้ได้ผลลัพธ์
ตัวอย่างเช่น SQL มีการประกาศมากกว่าขั้นตอนเนื่องจากแบบสอบถามไม่ได้ระบุขั้นตอนในการสร้างผลลัพธ์
ขอยกตัวอย่างในโลกแห่งความเป็นจริง: ฉันต้องการชาสักถ้วย
ขั้นตอน:
ประกาศ:
ในภาษาขั้นตอนคุณกำหนดกระบวนการทั้งหมดและระบุขั้นตอนในการดำเนินการ คุณเพียงแค่ระบุคำสั่งซื้อและกำหนดวิธีการให้บริการ
ในภาษาประกาศคุณเพียงแค่ตั้งค่าคำสั่งหรือคำสั่งและปล่อยให้มันอยู่ในระบบว่าจะทำอย่างไรให้คำสั่งนั้นสมบูรณ์ คุณเพียงแค่ต้องการผลลัพธ์ของคุณโดยไม่ต้องเจาะลึกว่าควรทำอย่างไร
การเขียนโปรแกรมขั้นตอน:
ในการเขียนโปรแกรมขั้นตอนเมื่อโปรแกรมเริ่มทำงานจะเป็นไปตามชุดคำสั่ง คำแนะนำอาจเปลี่ยนแปลงไปตามเนื้อหาของไฟล์หรือหน่วยความจำ แต่โดยรวมแล้วจะไม่แตกต่างกันมากนัก ข้อมูลที่ป้อนเข้าสู่โปรแกรมโดยทั่วไปไม่ได้มาจากการป้อนข้อมูลของผู้ใช้แบบเรียลไทม์ แต่มาจากชุดข้อมูลที่รวบรวมไว้ล่วงหน้า
การเขียนโปรแกรมที่เปิดเผย:
ในการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ประกาศจะรวมศูนย์กลางไว้ที่เนื้อหาของข้อมูลด้วยการดำเนินการที่เป็นทางเลือกโปรแกรมสามารถดำเนินการได้ ตัวอย่างเช่น "เหตุการณ์" แต่ละรายการในโปรแกรมประมวลผลคำคือการเปลี่ยนแปลงของเมาส์หรือแป้นพิมพ์ (หรือไฟล์) ที่มีผลต่อข้อมูลเอกสาร ไม่จำเป็นต้องดำเนินการตามลำดับใด ๆ การเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์จะอยู่ในรูปแบบของโปรแกรมขนาดเล็ก (ตัวจัดการเหตุการณ์) ซึ่งทั้งหมดทำงานบนชุดข้อมูลทั่วไปเพื่อให้โปรแกรมขนาดเล็กแต่ละโปรแกรมสามารถใช้ข้อมูลเดียวกันได้เอกสารในตัวอย่างนี้
ความแตกต่างที่สำคัญระหว่างภาษาการเขียนโปรแกรมสองภาษาคือในการเขียนโปรแกรมขั้นตอนเราบอกคอมพิวเตอร์ถึงวิธีแก้ปัญหาและในการเขียนโปรแกรมแบบเปิดเผยเราจะบอกคอมพิวเตอร์ว่าเราต้องการแก้ไขปัญหาใด
เพื่อระบุความคิดเห็นที่ตอบได้และอาจให้ตัวอย่างระหว่างความแตกต่างของทั้งสอง Ansible เป็นขั้นตอนที่มีการประกาศบางอย่างเช่นหุ่นหรือพื้นดิน ตัวอย่างเช่นคุณสร้างไฟล์ yaml ansible เพื่อปรับใช้อินสแตนซ์ ec2 10 รายการดังนี้:
-ec2: count: 10 image: ami-058c6e5b73b074cd2 instance_type: t2.micro
หากคุณต้องเรียกใช้ไฟล์นั้นสองครั้งคุณจะได้อินสแตนซ์ t2.micro ec2 จำนวน 20 รายการ หากคุณเขียนสิ่งที่เทียบเท่าในภาษาประกาศเช่น terraform และเรียกใช้สองครั้งคุณจะมีอินสแตนซ์ t2.micro 10 ตัวเท่านั้นไม่ว่าคุณจะเรียกใช้กี่ครั้งก็ตาม ภาษาประกาศระบุสถานะสิ้นสุด ภาษาขั้นตอนทำในสิ่งที่คุณบอกโดยไม่คำนึงถึงสถานะปัจจุบันหรือในอดีต
YAML เป็นภาษาการเขียนโปรแกรมที่เปิดเผยหรือไม่? เพราะเรากำหนดสิ่งที่เราต้องการแทนที่จะเขียนตรรกะที่แท้จริง
ฉันถามสิ่งนี้เพราะถ้าใครรู้จัก Ansible ซึ่งเป็นเครื่องมือจัดการการกำหนดค่าจะใช้ YAML แต่ก็ยังอยู่ในหมวดภาษาขั้นตอน
ในขั้นตอนวิธีการคุณเข้ารหัสคำสั่งของคุณเพื่อให้บรรลุผล ในแนวทางที่เปิดเผยคุณกำหนดสิ่งที่ต้องแก้ไขเป็นความรู้ในการแก้ปัญหา ดูตัวอย่างวิธีการขั้นตอนหรือการประกาศที่ฉันใช้ในทั้งสองวิธี
ดังที่คุณจะเห็นในตัวอย่างในแนวทางที่เปิดเผยคุณไม่จำเป็นต้องแนะนำวิธีการแก้ปัญหา