For faster navigation, this Iframe is preloading the Wikiwand page for กระบวนทัศน์การเขียนโปรแกรม.

กระบวนทัศน์การเขียนโปรแกรม

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

กระบวนทัศน์การเขียนโปรแกรม (อังกฤษ: Programming paradigm) เป็นวิธีแยกประเภทภาษาโปรแกรมโดยใช้คุณลักษณ์ในการเขียนโปรแกรมคอมพิวเตอร์ โดยใช้ภาษานั้น ๆ ภาษาโปรแกรมที่มีทั้งหมด สามารถแยกเป็นกระบวนทัศน์ต่าง ๆ ได้หลากหลายแบบ การแยกภาษาโปรแกรมเป็นกระบวนทัศน์หลาย ๆ กระบวนทัศน์ อาจทำการจำแนกได้อาศัยความแตกต่างในกระบวนการใช้โมเดลคำสั่ง (Execution model) เพื่อทำให้โปรแกรมทำตามชุดคำสั่งที่วางเอาไว้ หรือ อาจจำแนกเป็นกระบวนทัศน์ได้ตามวิธีการในการเขียนโค้ดที่แตกต่างกันไปในแต่ละภาษาโปรแกรม เช่น การเขียนโค้ดโดยเสมือนว่าเป็นวัตถุที่จับต้องได้ และในบางกรณีอาจจำแนกกระบวนทัศน์ได้โดยใช้หลักภาษาที่ใช้ในการเขียนโปรแกรม (Syntax)

กระบวนทัศน์การเขียนโปรแกรมสามารถแยกได้โดยทั่วไปดังนี้ (ในวิทยาการคอมพิวเตอร์มีการจำแนกกระบวนทัศน์การเขียนโปรแกรมไว้มากกว่าที่กล่าวไว้ด้านล่าง):

  • การเขียนโปรแกรมเชิงคำสั่ง (imperative programming) โปรแกรมเมอร์จะสั่งให้คอมพิวเตอร์เปลี่ยนสถานะด้วยคำสั่งเป็นขั้นตอน
    • การเขียนโปรแกรมเชิงกระบวนการ (procedural programming) จัดมัดกลุ่มคำสั่งให้กลายเป็นกระบวนการ (คำสั่งหลายคำสั่ง -> กระบวนการ)
    • การเขียนโปรแกรมเชิงวัตถุ (object-oriented programming) จับมัดกลุ่มคำสั่งกับสถานะโปรแกรมที่รันอยู่ มีจุดประสงค์เพื่อทำให้โค้ดโปรแกรมมีลักษณะเหมือนวัตถุที่จับต้องได้ในชีวิตจริง

ภาพรวม

[แก้]

กระบวนทัศน์การเขียนโปรแกรมเป็นภาวะนามธรรมของระบบคอมพิวเตอร์ ตัวอย่างเช่น ตัวแบบของฟอน นอยแมน (Von Neumann architecture) เป็นกระบวนทัศน์สำหรับคอมพิวเตอร์แบบลำดับ สำหรับการคำนวณแบบคู่ขนานมีกระบวนทัศน์ที่เป็นไปได้หลายกระบวนทัศน์ซึ่งมีหลายวิธีการที่โปรเซสเซอร์สามารถติดต่อกันได้ วิธีการพื้นฐานเช่น การใช้หน่วยความจำร่วมกัน การส่งข้อมูลให้กับหน่วยความจำอื่น หรือใช้ทั้งสองวิธีร่วมกัน ภาษาโปรแกรมหนึ่ง ๆ สามารถรองรับกระบวนทัศน์การเขียนโปรแกรมหลายกระบวนทัศน์ ตัวอย่างเช่น ภาษา C++ หรือ Object Pascal สามารถใช้เขียนได้ทั้งแบบการโปรแกรมเชิงกระบวนการ และการโปรแกรมเชิงวัตถุ หรือทั้งสองแบบในโปรแกรมเดียวกัน ผู้ออกแบบซอฟต์แวร์ และผู้เขียนโปรแกรมจะเป็นผู้ตัดสินใจว่าโปรแกรมจะเขียนแบบใด การเขียนโปรแกรมเชิงวัตถุ ผู้เขียนโปรแกรมจะมองโปรแกรมในลักษณะที่เป็นการทำงานร่วมกันของวัตถุ ในขณะที่การโปรแกรมเชิงฟังก์ชันจะมองการทำงานของโปรแกรมในลักษณะลำดับของการประเมินฟังก์ชันแบบไม่มีสถานะ เมื่อเขียนโปรแกรมคอมพิวเตอร์ หรือระบบให้ประมวลผลแบบหลายโปรเซสเซอร์ การโปรแกรมเชิงกระบวนงาน ผู้เขียนโปรแกรมจะมองแอพลิเคชันในลักษณะเซตของกระบวนงานที่ทำพร้อม ๆ กัน ซึ่งทำงานบนโครงสร้างข้อมูลที่ใช้ร่วมกันทางตรรกะ เช่นเดียวกับกลุ่มของวิศวกรรมซอฟต์แวร์ที่ต่างกันที่สนับสนุนวิธีการที่แตกต่างกัน ภาษาโปรแกรมแต่ละภาษาก็สนับสนุนกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกัน ภาษาโปรแกรมบางภาษาถูกออกแบบมาสำหรับกระบวนทัศน์การโปรแกรมกระบวนทัศน์เดียว (เช่น Smalltalk สนับสนุนเฉพาะการเขียนโปรแกรมเชิงวัตถุ Haskell สนับสนุนเพียงการเขียนโปรแกรมเชิงฟังก์ชัน เป็นต้น) ในขณะที่ภาษาโปรแกรมอื่น ๆ สนับสนุนกระบวนทัศน์การโปรแกรมหลายกระบวนทัศน์ (เช่น Object Pascal, C++, Java, C#, Visual Basic, Common Lisp,Scheme, Perl, Python, Ruby, Oz and F#) กระบวนทัศน์การโปรแกรมหลายกระบวนทัศน์เป็นที่รู้กันดีว่ามีเทคนิคอะไรบ้างที่หายไปและมีเทคนิคอะไรบ้างที่ทำได้ ตัวอย่างเช่น กระบวนทัศน์การเขียนโปรแกรมเชิงฟังก์ชัน ไม่ยอมให้มีการใช้ side-effects ส่วนการเขียนโปรแกรมเชิงโครงสร้างไม่ยอมให้มีคำสั่ง goto ด้วยเหตุผลนี้ กระบวนทัศน์การโปรแกรมใหม่ มักพิจารณาหลักยึด หรือเข้มงวดมาก โดยยึอถือตามกระบวนทัศน์ก่อนหน้า การหลีกเลี่ยงเทคนิคที่แน่นอนสามารถทำให้การพิสูจน์ทฤษฎีเกี่ยวกับความถูกต้องของโปรแกรมหรือการทำความเข้าใจพฤติกรรมของมันทำได้ง่ายขึ้น

ภาษาโปรแกรมหลายกระบวนทัศน์

[แก้]

ภาษาโปรแกรมหลายกระบวนทัศน์เป็นภาษาโปรแกรมที่สนับสนุนกระบวนทัศน์การเขียนโปรแกรมมากกว่าหนึ่งกระบวนทัศน์ เช่นภาษา Leda ซึ่งสร้างขึ้นโดย Timothy Budd เขาได้ใส่แนวคิดกับภาษาดังนี้ "แนวคิดของภาษาโปรแกรมหลายกระบวนทัศน์ คือการจัดเตรียมกรอบงานสำหรับผู้เขียนโปรแกรมให้สามารถเขียนโปรแกรมได้หลายวิธี สามารถรวมกระบวนทัศน์การเขียนโปรแกรมต่าง ๆ ได้อย่างอิสระ" จุดมุ่งหมายของภาษานี้ คือการยอมให้ผู้เขียนโปรแกรมใช้เครื่องมือที่ดีที่สุดสำหรับงานของเขา การยอมรับว่าไม่มีกระบวนทัศน์การโปรแกรมใดที่แก้ได้ทุกปัญหาด้วยวิธีการที่ง่ายที่สุดหรือมีประสิทธิภาพมากที่สุด ภาษาโปรแกรมอีกภาษาหนึ่งที่รู้จักกันดี คือ C# F# และอีกภาษาหนึ่งคือ Oz ซึ่งเป็นภาษาในกลุ่มตรรกะ และสามารถเขียนโปรแกรมได้ทั้งแบบฟังก์ชัน เชิงวัตถุ และการทำงานพร้อมกัน รวมถึงกระบวนทัศน์การโปรแกรมอื่น ๆ ด้วย Oz ถูกออกแบบมามากกว่า10 ปี เพื่อที่รวมกระบวนทัศน์การโปรแกรมแบบต่าง ๆ อย่างกลมกลืน กระบวนทัศน์การโปรแกรมได้จัดเตรียมวิธีการและโครงสร้างสำหรับการประมวลผลโปรแกรมสำหรับผู้เขียนโปรแกรม

{{bottomLinkPreText}} {{bottomLinkText}}
กระบวนทัศน์การเขียนโปรแกรม
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?