คำถาม: ภาษาใดถูกใช้ในการเขียนระบบโปรแกรม?

text: ภาษาโปรแกรม คือภาษาประดิษฐ์ชนิดหนึ่งที่ออกแบบขึ้นมาเพื่อสื่อสารชุดคำสั่งแก่เครื่องจักร โดยเฉพาะอย่างยิ่งคอมพิวเตอร์ ภาษาโปรแกรมสามารถใช้สร้างโปรแกรมที่ควบคุมพฤติกรรมของเครื่องจักร และ/หรือ แสดงออกด้วยขั้นตอนวิธี (algorithm) อย่างตรงไปตรงมา ผู้เขียนโปรแกรมซึ่งหมายถึงผู้ที่ใช้ภาษาโปรแกรมเรียกว่า โปรแกรมเมอร์ (programmer)
title: ภาษาโปรแกรม

text: เป็นที่น่าสังเกตว่าส่วนประกอบต่างๆ ของเครื่อง Alaytical Engine มีลักษณะใกล้เคียงกับส่วนประกอบ ของระบบคอมพิวเตอร์ ในปัจจุบันมาก แต่น่าเสียดายที่เครื่อง Alalytical Engine ของ Babbage นั้นไม่สามารถ สร้างให้สำเร็จขึ้นมาได้ ทั้งนี้เนื่องจากเทคโนโลยี สมัยนั้นไม่สามารถสร้างส่วนประกอบต่างๆ ดังกล่าว และอีกประการหนึ่งก็คือ สมัยนั้นไม่มีความจำเป็น ต้องใช้เครื่องที่มีความสามารถสูงขนาดนั้น ดังนั้นรัฐบาล อังกฤษจึงหยุดให้ความสนับสนุนโครงการของ Babbage ทำให้ไม่มีทุนที่จะทำการวิจัยต่อไป สืบเนื่องจากมาจากแนวความคิดของ Analytical Engine เช่นนี้จึงทำให้ Charles Babbage ได้รับการยกย่อง ให้เป็น บิดาของเครื่องคอมพิวเตอร์ และหลังจากนั้นอุปกรณ์ทางคอมพิวเตอร์ก็เริ่มพัฒนาขึ้น แต่มีอย่างหนึ่งที่ยังไม่มีในยุคนั้น สิ่งนั้นก็คือโปรแกรมนั้นเอง เนื่องจากในสมัยนั้นไม่มีใครคิดที่จะทำคอมพิวเตอร์สำหรับทำงานขึ้นมา แต่ใน พ.ศ. 2385 ชาวอังกฤษ ชื่อ Lady Auqusta Ada Byron ได้ทำการแปลเรื่องราวเกี่ยวกับเครื่อง Anatical Engine จากภาษาฝรั่งเศสเป็นภาษาอังกฤษในระหว่างการแปลทำให้ Lady Ada เข้าใจถึงหลักการทำงาน ของเครื่อง Analytical Engine และได้เขียนรายละเอียดขั้นตอนของคำสั่งให้เครื่องนี้ทำการคำนวณที่ยุ่งยากซับซ้อนไว้ในหนังสือทางคณิตศาสตร์เล่มหนึ่ง ซึ่งถือว่าเป็นโปรแกรมคอมพิวเตอร์โปรแกรมแรกของโลก และจากจุดนี้จึงถือว่า Lady Ada เป็นโปรแกรมเมอร์คนแรกของโลก (มีภาษาที่ใช้เขียนโปรแกรมที่เก่าแก่ อยู่หนึ่งภาษาคือภาษา Ada มาจาก ชื่อของ Lady Ada) นอกจากนี้ Lady Ada ยังค้นพบอีกว่าชุดบัตรเจาะรูที่บรรจุคำสั่งไว้สามารถนำกลับมาทำงานซ้ำได้ถ้าต้องการ นั่นคือหลักของการทำงานวนซ้ำ หรือเรียกว่า Loop เครื่องมือที่ใช้ในการคำนวณที่ถูกพัฒนาขึ้นในศตวรรษที่ 19 นั้น ทำงานกับเลขฐานสิบ (Decimal Number) แต่เมื่อเริ่มต้นของศตวรรษที่ 20 ระบบคอมพิวเตอร์ได้ถูกพัฒนาขึ้นจึงทำให้มีการเปลี่ยนแปลงมาใช้ เลขฐานสอง (Binary Number) กับระบบคอมพิวเตอร์ ที่เป็นผลสืบเนื่องมาจากหลักของพีชคณิต 
title: ประวัติฮาร์ดแวร์คอมพิวเตอร์

text: ภาษา C เป็นภาษาการเขียนโปรแกรมคอมพิวเตอร์เพื่อใช้งานทั่วไป, ถูกคิดค้นแต่เดิมในปี 1972 โดย เดนนิส ริตชี่ ที่ห้องปฏิบัติการโทรศัพท์ Bell เพื่อที่จะเปิดการใช้ระบบปฏิบัติการยูนิกซ์. แม้ว่า ภาษา C ได้รับการออกแบบสำหรับการเขียนซอฟต์แวร์ระบบสถาปัตยกรรมที่เป็นอิสระ, มันยังคงถูกใช้กันอย่างแพร่หลายในการพัฒนาโปรแกรมประยุกต์.[212]
title: ลำดับสิ่งประดิษฐ์ของสหรัฐ (ค.ศ. 1946–91)

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

text: แม้ว่าหลังจากการเผยแพร่มาตรฐานของภาษาซีเมื่อ พ.ศ. 2532 ภาษาเคแอนด์อาร์ซีถูกพิจารณาว่าเป็น "ส่วนร่วมต่ำสุด" อยู่เป็นเวลาหลายปี (ความสามารถในการแปลรหัสจำนวนหนึ่งเป็นคำสั่งซึ่งทำงานได้บนเครื่องใดก็ตามเป็นอย่างน้อย) ซึ่งโปรแกรมเมอร์ภาษาซีต้องจำกัดความสามารถของพวกเขาในกรณีที่ต้องการให้ระบบสามารถใช้ได้กับหลายเครื่องมากที่สุด เนื่องจากตัวแปลโปรแกรมเก่า ๆ ก็ยังคงมีการใช้งานอยู่ และการเขียนภาษาซีแบบเคแอนด์อาร์อย่างระมัดระวังสามารถเข้ากันได้กับภาษาซีมาตรฐานเป็นอย่างดี
title: ภาษาซี

text: การเขียนโปรแกรมระบบเป็นการใช้งานหลักของภาษาซี ซึ่งรวมไปถึงการพัฒนาระบบปฏิบัติการและโปรแกรมประยุกต์ระบบฝังตัว เนื่องจากลักษณะเฉพาะอันเป็นที่ต้องการถูกรวมเข้าไว้ด้วยกัน อย่างเช่น ความสามารถในเคลื่อนย้ายได้กับประสิทธิภาพของรหัสต้นฉบับ ความสามารถในการเข้าถึงที่อยู่ของฮาร์ดแวร์ที่ระบุ ความสามารถเรื่อง [[type punning]] เพื่อให้เข้ากับความต้องการการเข้าถึงข้อมูลที่กำหนดไว้จากภายนอก และความต้องการทรัพยากรระบบขณะทำงานต่ำ ภาษาซีสามารถใช้เขียนโปรแกรมเว็บไซต์โดยใช้[[ซีจีไอ]]เป็น "เกตเวย์" เพื่อแลกเปลี่ยนสารสนเทศระหว่าง[[เว็บแอปพลิเคชัน]] [[เซิร์ฟเวอร์]] และ[[เบราว์เซอร์]] ปัจจัยบางอย่างที่ทำให้เลือกภาษาซีแทนที่จะเป็นภาษาอินเทอร์พรีตเตอร์ คือความเร็ว เสถียรภาพ และความอ่อนไหวต่อการเปลี่ยนแปลงในสภาพแวดล้อมของการดำเนินงาน เนื่องจากเป็นธรรมชาติของภาษาคอมไพเลอร์ 
title: ภาษาซี

text: ตัวอย่างต่อไปนี้ คือตัวอย่างโปรแกรม Hello world ใน C#:
public class ExampleClass
ผลของการทำงานคือมีการแสดงคำว่า "Hello, world!" ในหน้าต่างคอนโซล โดยในแต่ละบรรทัดมีความหมายดังนี้:
public class ExampleClass
บรรทัดนี้คือการประกาศ Class, "public" หมายถึงวัตถุที่สร้างในโครงการ (Project) อื่นๆ สามารถเข้าใช้งาน Class นี้ได้ ไม่จำกัด. ข้อมูลต่างๆ ที่อยู่ผ่านใต้หน่วยของบรรทัดนี้ จะใช้ในการทำงานของ Class นี้
public static void Main()
บรรทัดนี้เป็นจุดที่ใช้ในการเริ่มการทำงานของโปรแกรม เมื่อโปรแกรมทำงาน โดยสามารถเรียกใช้จากโปรแกรมอื่นได้โดยการใช้ไวยากรณ์ codice_1. (codice_2 เป็นส่วนที่ใช้ในการทำงาน ซึ่งต้องเรียนรู้ในการเขียนขั้นสูง)
System.Console.WriteLine("Hello, world!");
ในบรรทัดนี้ เป็นการทำงาน เพื่อแสดงผลออกมา "Console" คือโปรแกรมระบบ, ซึ่งก็คือ โปรแกรมระบบแบบสั่งคำสั่งที่ละบรรทัด (เช่น DOS) ที่สามารถรับข้อมูลและแสดงผลเป็นข้อความได้. จากที่เราเขียนโปรแกรมจะทำการเรียก "Console" โดยใช้คำสั่ง "WriteLine", ซึ่งทำให้สามารถส่งค่าข้อความออกมาแสดงผลได้
title: ภาษาซีชาร์ป

text: โปรแกรมเฮลโลเวิลด์ เป็นโปรแกรมคอมพิวเตอร์พื้นฐานที่ทำการแสดงผลคำว่า "Hello world" หรือ "Hello, world!"(ตามหลักภาษาอังกฤษ) บนอุปกรณ์แสดงผล ซึ่งเป็นหนึ่งในโปรแกรมที่ง่ายที่สุดเท่าที่จะเป็นไปได้ในการเขียนภาษาโปรแกรมต่างๆ เพราะฉะนั้นโดยธรรมเนียมปฏิบัติแล้ว มักจะใช้ในการตรวจสอบว่าเขียนภาษาโปรแกรมได้ถูกต้องหรือระบบมีการประมวลผลที่ถูกต้อง และมักถูกใช้เป็นตัวอย่างที่ง่ายที่สุดในการแสดงวากยสัมพันธ์การเขียนโปรแกรม โดยเฉพาะอย่างยิ่งบน command-line interpreter (เชลล์) เพื่อทำการแสดงผลออกมา อย่างไรก็ตามโปรแกรมนี้ก็มีความซับซ้อนอย่างน่าประหลาดใจ โดยเฉพาะเมื่อต้องเขียนโปรแกรมสำหรับส่วนต่อประสานกราฟิกกับผู้ใช้ เมื่อเขียนโปรแกรมในembedded system ช้อความจะถูกส่งมายังจอภาพผลึกเหลว ซึ่งตัวอุปกรณ์นั้นไม่ได้แสดงผลตัวอักษร แต่ตัวโปรแกรมง่ายๆ นี้ จะทำการสร้างสัญญาณ เช่นเดียวกับการเปิดLED บ้างที่เราอาจกล่าวได้ว่า "Hello world" เปรียบเสมือนการต้อนรับเราเข้าสู่โปรแกรมก็ได้
title: เฮลโลเวิลด์

text: วิธีแก้ปัญหาของ SCADA มักจะมี ระบบควบคุมแยกส่วน (Distributed Control System, DCS) มีการใช้ RTUs หรือ PLCs ที่ฉลาดเพิ่มขึ้น พวกนี้มีความสามารถในการดำเนินการด้วยตนเองในกระบวนการตรรกะง่ายๆโดยไม่เกี่ยวข้องกับคอมพิวเตอร์หลัก ภาษามาตรฐานของการเขียนโปรแกรมควบคุม, IEC 61131-3 (ชุดของ 5 ภาษาของโปรแกรมรวมทั้งฟังก์ชันบล็อก, บันได, โครงสร้างข้อความ, แผนภูมิลำดับฟังก์ชันและรายการคำสั่ง) มักจะถูกใช้ในการสร้างโปรแกรมที่ทำงานบน RTUs และ PLCs เหล่านี้ ซึ่งแตกต่างจากภาษากรรมวิธีเช่นการเขียนโปรแกรมภาษา C หรือ FORTRAN, IEC 61131-3 ต้องการการฝึกอบรมน้อยที่สุดโดยอาศัยอำนาจของอาร์เรย์ที่คล้ายกับการควบคุมทางกายภาพประวัติศาสตร์ ซึ่งจะช่วยให้วิศวกรระบบ SCADA สามารถดำเนินการได้ทั้งการออกแบบและการติดตั้ง โปรแกรมจะต้องถูกนำไปใช้งานบน RTU หรือ PLC ตัวควบคุมการทำงานอัตโนมัติที่สามารถโปรแกรมได้ (Programmable Automation Controller, PAC) เป็นตัวควบคุมขนาดเล็กที่รวมคุณสมบัติและความสามารถของระบบควบคุมที่ทำงานด้วยคอมพิวเตอร์ส่วนบุคคล (PC-based)เหมือนกับ PLC ทั่วไป PACs จะถูกนำไปใช้ในระบบ SCADA เพื่อให้ฟังก์ชันกับ RTU และ PLC. ในหลายโปรแกรมของ SCADA ที่ใช้ในงานสถานีไฟฟ้าย่อย, "RTU แยกส่วน" ใช้ตัวประมวลผลข้อมูลหรือคอมพิวเตอร์ตั้งโต๊ะเพื่อสื่อสารกับรีเลย์ป้องกันแบบดิจิตอล, กับ PACs และกับอุปกรณ์อื่น ๆ ที่เป็น I/O และสื่อสารกับ SCADA ตัวแม่ แทนที่จะติดต่อกับ RTU แบบเดิม
title: ระบบสกาดา

text: การดำเนินการหลายอย่างในภาษาซีมี[[พฤติกรรมไม่นิยาม]]ซึ่งไม่ถูกกำหนดว่าต้องตรวจสอบ[[ขณะแปลโปรแกรม]] ในกรณีของภาษาซี "พฤติกรรมไม่นิยาม" หมายถึงพฤติกรรมเฉพาะอย่างที่เกิดขึ้นโดยมาตรฐานมิได้ระบุไว้ และสิ่งที่จะเกิดขึ้นก็ไม่มีในเอกสารการใช้งานของภาษาซี หนึ่งในชุดคำสั่งที่มีชื่อเสียงและน่าขบขันจาก[[กลุ่มข่าว]] comp.std.c และ comp.lang.c นั้นทำให้โปรแกรมเกิดปัญหาที่เรียกว่า "ปิศาจที่ออกมาจากจมูกของคุณ" (demons to fly out of your nose) บางครั้งสิ่งที่เกิดขึ้นในทางปฏิบัติอันเป็นผลมาจากพฤติกรรมไม่นิยามทำให้เกิด[[จุดบกพร่อง]]ที่ยากต่อการตรวจสอบและอาจทำให้ข้อมูลในหน่วยความจำผิดแปลกไป ตัวแปลโปรแกรมบางชนิดช่วยสร้างการดำเนินงานที่ทำให้พฤติกรรมนั้นดีขึ้นและมีเหตุผล ซึ่งแตกต่างจากการแปลโดยตัวแปลชนิดอื่นที่อาจดำเนินงานไม่เหมือนกัน สาเหตุที่พฤติกรรมบางอย่างยังคงไว้ว่าไม่นิยามก็เพื่อให้ตัวแปลโปรแกรมบนสถาปัตยกรรม[[ชุดของคำสั่งเครื่อง]]ที่หลากหลาย สามารถสร้างรหัสที่ทำงานได้ในพฤติกรรมที่นิยามอย่างมีประสิทธิภาพมากขึ้น ซึ่งเชื่อว่าเป็นบทบาทหนึ่งที่สำคัญของภาษาซีในฐานะภาษาสำหรับสร้างระบบ ดังนั้นภาษาซีจึงส่งผลให้เกิดความรับผิดชอบของโปรแกรมเมอร์เพื่อหลีกเลี่ยงพฤติกรรมไม่นิยาม โดยอาจใช้[[#เครื่องมือที่ใช้กับภาษา|เครื่องมือต่าง ๆ]] เพื่อค้นหาส่วนของโปรแกรมว่าพฤติกรรมใดบ้างที่ไม่นิยาม ตัวอย่างของพฤติกรรมไม่นิยามเช่น
การดำเนินการเหล่านี้ทั้งหมดเป็นข้อผิดพลาดในการเขียนโปรแกรม ซึ่งสามารถปรากฏในการใช้ภาษาโปรแกรมอื่น ๆ จำนวนมาก ภาษาซีจึงถูกวิพากษ์วิจารณ์เพราะมาตรฐานของมันสามารถชี้ให้เห็นถึงพฤติกรรมไม่นิยามในหลายกรณีได้อย่างชัดเจน รวมไปถึงพฤติกรรมบางอย่างที่อาจนิยามไว้อย่างดีแล้ว และไม่มีการระบุกลไกการจัดกระทำต่อข้อผิดพลาดขณะทำงานเลย
title: ภาษาซี

text: เฟรมเวิร์ก (framework) หรือ โครงร่างซอฟต์แวร์ เป็นรูปแบบที่นำกลับมาใช้ใหม่ได้สำหรับระบบซอฟต์แวร์ (หรือระบบย่อย) ซึ่งสามารถอยู่ในรูปของคลาสนามธรรม (Abstract class) และกับวิธีในการใช้ตัวตน (instance) ของคลาสร่วมกันจำเพาะสำหรับซอฟต์แวร์ชนิดใดชนิดหนึ่ง โครงร่างซอฟต์แวร์ทุกโครงร่างใช้การออกแบบเชิงวัตถุ โปรแกรมของโครงร่างซอฟต์แวร์มักจะเป็นโปรแกรมเชิงวัตถุ อย่างไรก็ตามโปรแกรมที่เขียนขึ้นตามการออกแบบไม่จำเป็นต้องเป็นโปรแกรมเชิงวัตถุ 
title: ซอฟต์แวร์เฟรมเวิร์ก

text: การแข่งขันมีทั้งสิ้นสองวัน ในแต่ละวันนักเรียนแต่ละคนจะได้รับโจทย์ 3 ข้อ (บางปีอาจเป็น 4 ข้อ) และมีเวลาสำหรับแก้ปัญหา 5 ชั่วโมง ผู้เข้าแข่งขันจะต้องแก้ไขปัญหาด้วยตนเอง โดยมีคอมพิวเตอร์หนึ่งเครื่อง และไม่มีการช่วยเหลืออื่นใด เช่น การสื่อสารกับผู้แข่งขันคนอื่น การสื่อสารกับบุคคลภายนอก หนังสือ อินเทอร์เน็ต ฯลฯ โดยปกตินักเรียนจะต้องแก้ปัญหาโดยการเขียนโปรแกรมคอมพิวเตอร์ด้วย ภาษาซี, ภาษาซีพลัสพลัส หรือ ภาษาปาสกาล และส่งภายในเวลา 5 ชั่วโมงของการแข่งขัน หลังจากนั้นจะมีการตรวจโปรแกรมที่ส่งมาด้วยชุดข้อมูลทดสอบอันเป็นความลับ ซึ่งมีข้อมูลทดสอบจำนวนหนึ่ง (ปกติจะเป็น 10 หรือ 20 ข้อ) ผู้เข้าแข่งขันจะได้คะแนนสำหรับชุดทดสอบที่โปรแกรมทำงานถูกต้อง ภายในเวลาที่กำหนด และไม่ใช้หน่วยความจำเกินกำหนด โจทย์บางข้ออาจมีการตอบโต้ระหว่างโปรแกรมและไลบรารีหนึ่งซึ่งเป็นความลับ ทำให้ข้อมูลนำเข้ามีความแตกต่างกัน ขึ้นอยู่กับการตอบโต้ของโปรแกรม เช่นโจทย์เขียนโปรแกรมให้เล่นเกมให้ชนะ นอกจากนี้ยังมีปัญหาอีกชนิดหนึ่งซึ่งเปิดเผยชุดข้อมูลทดสอบให้กับนักเรียนระหว่างการแข่งขัน นักเรียนจะต้องแก้ปัญหาสำหรับข้อมูลทดสอบชุดนี้ และส่งคำตอบเท่านั้นโดยไม่ต้องส่งโปรแกรม ซึ่งนักเรียนอาจใช้การเขียนโปรแกรมแก้ปัญหา อาจทำด้วยมือ หรืออาจใช้การผสมผสานของสองอย่างนี้ก็ได้
title: คอมพิวเตอร์โอลิมปิกระหว่างประเทศ

text: ในด้านการเขียนโปรแกรมคอมพิวเตอร์ ซับรูทีน () เป็นลำดับของคำสั่งโปรแกรมที่กระทำงานอย่างใดอย่างหนึ่ง และถูกรวมกันเป็นหนึ่งหน่วย หน่วยนี้สามารถใช้ในโปรแกรม ณ ตำแหน่งใดตำแหน่งหนึ่งที่งานนั้น ๆ จะเข้าไปกระทำ โปรแกรมย่อยอาจถูกกำหนดขึ้นภายในโปรแกรมต่าง ๆ หรือถูกกำหนดแยกอยู่ในคลัง (library) ที่โปรแกรมหลายโปรแกรมสามารถเรียกใช้ ในแต่ละภาษาโปรแกรม ซับรูทีนชุดหนึ่งอาจเรียกว่า กระบวนงาน (procedure) ฟังก์ชัน (function) รูทีน (routine) เมท็อด (method) หรือโปรแกรมย่อย บางครั้งใช่คำเรียกทั่วไปว่า หน่วยที่เรียกใช้ได้ (callable unit)
title: ซับรูทีน

text: ภาษาโปรแกรมเชิงฟังก์ชันโดยเฉพาะภาษาโปรแกรมเชิงฟังก์ชันบริสุทธิ เช่น ภาษาโฮปถูกในความสำคัญในวงการวิชาการมากกว่าในการพัฒนาซอฟต์แวร์เชิงพาณิชย์ อย่างไรก็ตามภาษาโปรแกรมที่มีชื่อเสียงซึ่งสนับสนุนการเขียนโปรแกรมเชิงฟังก์ชัน เช่น ภาษาคอมมอนลิสป์ ภาษา Scheme ภาษา Clojure ภาษา Wolfram (หรือ ภาษา Mathematica) ภาษา Racket ภาษาเออร์แลง ภาษา OCaml ภาษา Haskell และภาษาเอฟชาร์ป ใช้ในโปรแกรมประยุกต์เชิงอุตสาหกรรมและเชิงพาณิชย์โดยองค์กรอย่างกว้างขวาง การเขียนโปรแกรมเชิงฟังก์ชันยังได้รับการรองรับในภาษาเขียนโปรแกรมเฉพาะทางบางภาษา เช่น ภาษาอาร์ (สถิติ) ภาษาเจ ภาษาเค และภาษาคิวจาก Kx Systems (การวิเคราะห์ทางการคลัง) XQuery/XSLT (เอกซ์เอ็มแอล) และภาษาโอปอล ภาษาเชิงประกาศเฉพาะทางที่ใช้งานอย่างกว้างขวางเช่น ภาษาสอบถามเชิงโครงสร้าง และ Lex/Yacc ใช้บางส่วนประกอบของการเขียนโปรแกรมเชิงฟังก์ชันโดยเฉพาะใน eschewing วัตถุที่เปลี่ยนแปลงได้.
title: การเขียนโปรแกรมเชิงฟังก์ชัน

text: ภาษาซีชาร์ป (C♯ Programming Language) เป็นภาษาโปรแกรมแบบหลายโมเดล ที่ใช้ระบบชนิดข้อมูลแบบรัดกุม (strong typing) และสนับสนุนการเขียนโปรแกรมเชิงคำสั่ง การเขียนโปรแกรมเชิงประกาศ การเขียนโปรแกรมเชิงฟังก์ชัน การเขียนโปรแกรมเชิงกระบวนการ การเขียนโปรแกรมเชิงวัตถุ (แบบคลาส) และการเขียนโปรแกรมเชิงส่วนประกอบ พัฒนาเริ่มแรกโดยบริษัทไมโครซอฟท์เพื่อทำงานบนดอตเน็ตเฟรมเวิร์ก โดยมีแอนเดอร์ เฮลส์เบิร์ก (Anders Hejlsberg) เป็นหัวหน้าโครงการ และมีรากฐานมาจากภาษาซีพลัสพลัสและภาษาอื่นๆ (โดยเฉพาะภาษาเดลไฟและจาวา) โดยมีจุดมุ่งหมายให้เป็นภาษาสมัยใหม่ที่ไม่ซับซ้อน ใช้งานได้ทั่วไป (general-purpose) และเป็นเชิงวัตถุเป็นหลัก 
title: ภาษาซีชาร์ป

text: ภาษาซีมักใช้กับการเขียนโปรแกรมระบบในระดับต่ำ ซึ่งอาจหลบเลี่ยงการใช้ระบบชนิดตัวแปรเมื่อจำเป็น ตัวแปลโปรแกรมจะพยายามทำให้แน่ใจว่า ชนิดตัวแปรถูกใช้อย่างถูกต้องในนิพจน์ส่วนใหญ่ แต่โปรแกรมเมอร์ก็สามารถลบล้างการตรวจสอบเช่นนั้นได้หลายทาง อาทิ การโยนชนิดข้อมูล (type cast) เพื่อแปลงค่าจากชนิดหนึ่งไปเป็นชนิดหนึ่งอย่างชัดเจน หรือการใช้ตัวชี้หรือยูเนียนเพื่อแปลความหมายบิตของค่าที่อยู่ภายในไปเป็นอีกชนิดหนึ่ง
title: ภาษาซี

text: ระบบปฏิบัติการและเครื่องมืออำนวยความสะดวกในการเขียนโปรแกรมในระดับที่สูงกว่า ใช้มโนทัศน์และพื้นฐานไอ/โอที่เป็นนามธรรมมากกว่าและแบ่งแยกออกจากกัน ตัวอย่างเช่น ระบบปฏิบัติการส่วนมากจัดเตรียมโปรแกรมประยุกต์ต่าง ๆ ไว้ด้วยแนวคิดของไฟล์ ภาษาโปรแกรมกลุ่มภาษาซี ภาษาซีพลัสพลัส และระบบปฏิบัติการตระกูลยูนิกซ์ โดยดั้งเดิมจะถือว่าไฟล์และอุปกรณ์ต่าง ๆ เป็นกระแสข้อมูล (stream) ซึ่งสามารถอ่าน เขียน หรือกระทำได้ทั้งสองอย่าง ไลบรารีภาษาซีมาตรฐานได้จัดเตรียมฟังก์ชันเพื่อจัดดำเนินการกระแสข้อมูลรับเข้าและส่งออกไว้ด้วย
title: อินพุต/เอาต์พุต

text: ปัญหาอีกประการหนึ่งคือ การจัดสรรหน่วยความจำในฮีปจำเป็นต้องกระทำพร้อมกับการใช้งานจริงด้วยตนเองในโปรแกรมใด ๆ ก็ตาม เพื่อให้มันสามารถนำกลับมาใช้ใหม่มากที่สุดเท่าที่เป็นไปได้ ตัวอย่างเช่น ถ้ามีตัวชี้ไปยังฮีปที่ถูกจัดสรรนอกขอบเขต หรือค่าของตัวชี้ถูกเขียนทับก่อนเรียกใช้ codice_208 จะทำให้หน่วยความจำที่ตำแหน่งนั้นไม่สามารถเรียกคืนเพื่อใช้ใหม่ภายหลังและสูญเสียไปกับโปรแกรม อันเป็นปรากฏการณ์ที่เรียกว่า "[[หน่วยความจำรั่ว]]" (memory leak) ในทางกลับกัน การปลดปล่อยหน่วยความจำเร็วเกินไปแล้วยังคงใช้งานอยู่ซึ่งเป็นไปได้ แต่เนื่องจากระบบจัดสรรหน่วยความจำสามารถจัดสรรอีกครั้งหรือใช้หน่วยความจำที่ถูกทำให้ว่าง พฤติกรรมที่คาดเดาไม่ได้ก็อาจเกิดขึ้น โดยปกติอาการจะปรากฏในส่วนของโปรแกรมที่อยู่ไกลจากจุดที่ทำให้เกิดความผิดพลาดจริง ทำให้ตรวจแก้ปัญหาได้อย่างยากลำบาก ปัญหาเช่นนี้ได้รับการปรับปรุงแก้ไขในภาษาโปรแกรมที่มี[[การเก็บกวาดข้อมูลขยะ|การเก็บกวาดข้อมูลขยะอัตโนมัติ]]
title: ภาษาซี

text: Perl เป็นภาษาเขียนโปรแกรมแบบไดนามิกตีความได้วัตถุประสงค์ทั่วไประดับสูง. มันถูกคิดค้นดั้งเดิมโดย แลร์รี่ วอลล์, นักภาษาศาสตร์ที่ทำงานเป็นผู้ดูแลระบบของนาซ่า, ในปี 1987, ในฐานะที่เป็นภาษาสคริปต์ Unix วัตถุประสงค์ทั่วไปเพื่อให้การประมวลผลรายงานได้ง่ายขึ้น. นอกจากนี้ Perl ยังใช้สำหรับการประมวลผลข้อความ, การบริหารระบบ, การพัฒนาโปรแกรมประยุกต์บนเว็บ, ชีวสารสนเทศ, การเขียนโปรแกรมเครือข่าย, การใช้งานที่จำเป็นต้องมีการเข้าถึงฐานข้อมูล, การเขียนโปรแกรมกราฟิกอื่นๆ.[265]
title: ลำดับสิ่งประดิษฐ์ของสหรัฐ (ค.ศ. 1946–91)

text: ภาษาซี (C) เป็นภาษาโปรแกรมสำหรับวัตถุประสงค์ทั่วไป เริ่มพัฒนาขึ้นระหว่าง พ.ศ. 2512-2516 (ค.ศ. 1969-1973) โดยเดนนิส ริชชี่ (Dennis Retchie) ที่เอทีแอนด์ทีเบลล์แล็บส์ (AT&T Bell Labs) ภาษาซีเป็นภาษาที่มีความยืดหยุ่นในการเขียนโปรแกรมและมีเครื่องมืออำนวยความสะดวกสำหรับการเขียนโปรแกรมเชิงโครงสร้างและอนุญาตให้มีขอบข่ายตัวแปร (scope) และการเรียกซ้ำ (recursion) ในขณะที่ระบบชนิดตัวแปรอพลวัตก็ช่วยป้องกันการดำเนินการที่ไม่ตั้งใจหลายอย่าง เหมือนกับภาษาโปรแกรมเชิงคำสั่งส่วนใหญ่ในแบบแผนของภาษาอัลกอล การออกแบบของภาษาซีมีคอนสตรักต์ (construct) ที่โยงกับชุดคำสั่งเครื่องทั่วไปได้อย่างพอเพียง จึงทำให้ยังมีการใช้ในโปรแกรมประยุกต์ซึ่งแต่ก่อนลงรหัสเป็นภาษาแอสเซมบลี คือซอฟต์แวร์ระบบอันโดดเด่นอย่างระบบปฏิบัติการคอมพิวเตอร์ ยูนิกซ์ 
title: ภาษาซี

text: ในกรณีที่เขียน awk ด้วยตัวพิมพ์เล็ก จะหมายถึงโปรแกรมในระบบปฏิบัติการยูนิกซ์ หรือ Plan 9 ที่ใช้ประมวลผลโปรแกรมอื่นๆ ซึ่งเขียนด้วยภาษา AWK นี้
title: ภาษาออว์ก

text: ภาษาเอฟชาร์ป (F#) เป็นภาษาสำหรับเขียนโปรแกรมคอมพิวเตอร์แบบ บนดอตเน็ตเฟรมเวิร์กและ ที่สนับสนุนโมเดลการเขียนโปรแกรมหลายแบบรวมทั้ง การเขียนโปรแกรมเชิงวัตถุ และการเขียนโปรแกรมเชิงคำสั่ง F# เป็นภาษาดอตเน็ต สามารถเรียกใช้เอพีไอของดอตเน็ต และถูกเรียกจากภาษาดอตเน็ตอื่นๆ นอกจากนั้น F# ยังสามารถถูกใช้กับโปรแกรมประยุกต์บนเว็บ เขียนโปรแกรมสำหรับหน่วยประมวลผลกราฟิกส์ หรือ GPU และใช้เขียนโปรแกรมสำหรับแมคโอเอสเท็น ไอโอเอส และ แอนดรอยด์ โดยใช้ สร้างโดยบริษัท 
title: ภาษาเอฟชาร์ป

text: คือ การอธิบายจะไม่ขึ้นอยู่กับโปรแกรมภาษาใดภาษาหนึ่ง ผู้ที่อ่านสามารถนำซูโดโค้ดและพีดีแอล ไปใช้สำหรับเขียนโปรแกรมได้จริง โดยใช้ตัวแปลภาษาซี ภาษาเบสิก ภาษาจาวา ก็ได้ทั้งสิ้น
title: รหัสจำลองและพีดีแอล PDL

text: ภาษาซีรุ่นนี้ยังคงรองรับในตัวแปลโปรแกรมในปัจจุบัน และรหัสภาษาซีส่วนใหญ่ที่เขียนขึ้นทุกวันนี้ก็ใช้พื้นฐานมาจากรุ่นนี้ โปรแกรมใด ๆ ที่เขียนขึ้นด้วยภาษาซีมาตรฐานโดยไร้สมมติฐานว่าขึ้นอยู่กับฮาร์ดแวร์ใด จะทำงานได้อย่างถูกต้องบน[[แพลตฟอร์ม]]ใดก็ตามด้วยการพัฒนาภาษาซีที่สอดคล้องกันภายในทรัพยากรที่จำกัด หากไม่ระมัดระวังเช่นนั้น โปรแกรมอาจแปลได้เฉพาะบนแพลตฟอร์มหนึ่งหรือด้วยตัวแปลตัวหนึ่งเท่านั้น อันเนื่องมาจากการใช้ไลบรารีไม่มาตรฐานเช่นไลบรารี[[ส่วนต่อประสานกราฟิกกับผู้ใช้]]ก็ดี หรือความเชื่อมั่นต่อสมบัติเฉพาะของแพลตฟอร์มหรือตัวแปลหนึ่ง ๆ เช่นขนาดที่แท้จริงของชนิดข้อมูลหรือ[[การลำดับข้อมูลไบต์]] (endianness) ก็ดี
title: ภาษาซี

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

text: ภาษาโปรแกรมแต่ละภาษาจะมีลักษณะหรือรูปแบบการเขียนที่แตกต่างกัน การเลือกภาษาโปรแกรมหรือภาษาคอมพิวเตอร์เพื่อนำมาเขียนโปรแกรมนั้นขึ้นอยู่กับปัจจัยหลาย ๆ อย่าง เช่นนโยบายของบริษัท, ความเหมาะสมของโปรแกรมกับลักษณะงานที่จะถูกนำไปใช้, การเข้ากันได้กับโปรแกรมอื่น ๆ, หรืออาจเป็นความถนัดของแต่ละคน ภาษาโปรแกรมที่มีแนวโน้มในการนำมาเขียนมักเป็นภาษาที่มีคนที่สามารถเขียนได้ทันที หรือหากมีความจำเป็นที่จะต้องเลือกใช้ภาษาอื่น เช่นต้องการเน้นประสิทธิภาพในการทำงานของโปรแกรม ก็อาจจำเป็นต้องหานักเขียนโปรแกรมขึ้นมาจำนวนหนึ่งซึ่งมีความรู้ความเข้าใจในภาษาโปรแกรมที่ต้องการ และองมีคอมไพเลอร์ที่รองรับภาษาเหล่านั้นด้วย
title: การเขียนโปรแกรมคอมพิวเตอร์

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

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

text: Ruby Script เป็นภาษาคอมพิวเตอร์ที่คิดขึ้นโดยยูกิฮิโระ มัตสึโมโตะเพื่อใช้ในการเขียนโปรแกรมต่างๆ และมีความสามารถในการเรียกใช้ภาษาอื่นๆบางภาษา เช่น ภาษา C , ภาษา Visual Basic ฯลฯ สำหรับตัวโปรแกรมนี้นั้นใช้ภาษารูบีนี้ในการทำงาน โดยสร้างค่าการใช้งานต่างๆที่สำคัญ (เช่น การเรียกใช้ไฟล์จากโฟลเดอร์) มาไว้เรียบร้อยแล้ว เรียกว่า RGSS (Ruby Game Scripting System) และมีสคริปต์พื้นฐานสำหรับเกมที่สร้าง RPG มาด้วย ผู้ใช้โปรแกรมนี้สามารถแก้ไขหรือเพิ่มเติมสคริปต์ได้ตามต้องการ ทำให้การสร้างเกมด้วยโปรแกรมนี้มีความหลากหลายมาก แต่ผู้ใช้ที่จะแก้ไขต้องมีความรู้ในเรื่องสคริปต์พื้นฐานมากพอ เพราะการเข้าไปแก้ไขนี้จะเป็นการเปลี่ยนระบบหลักของเกมไปในทันที
title: อาร์พีจีเมกเกอร์เอกซ์พี

text: เว็บเซอร์วิซ ( "บริการบนเว็บ") คือระบบซอฟต์แวร์ที่ออกแบบมา เพื่อสนับสนุนการแลกเปลี่ยนข้อมูลกัน ระหว่างเครื่องคอมพิวเตอร์ผ่านระบบเครือข่าย โดยที่ภาษาที่ใช้ในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ คือเอกซ์เอ็มแอล เว็บเซอร์วิซมีอินเทอร์เฟส ที่ใช้อธิบายรูปแบบข้อมูลที่เครื่องคอมพิวเตอร์ประมวลผลได้ เช่น WSDL ระบบคอมพิวเตอร์ใช้งานสื่อสารโต้ตอบกับเว็บเซอร์วิซตามรูปแบบที่ได้กำหนดไว้แล้ว โดยการส่งสาสน์ตามอินเตอร์เฟสของเว็บเซอร์วิซนั้น โดยที่สาสน์ดังกล่าวอาจแนบไว้ในซอง SOAP ()หรือส่งตามอินเตอร์เฟสในแนวทางของ REST สาสน์เหล่านี้ปกติแล้วถูกส่งโดยอาศัย HTTP และใช้ XML ร่วมกับมาตรฐานเกี่ยวกับเว็บอื่นๆ โปรแกรมประยุกต์ที่เขียนโดยภาษาต่างๆ และทำงานบนแพลตฟอร์มต่างๆกันสามารถใช้เว็บเซอร์วิซเพื่อแลกเปลี่ยนข้อมูลผ่านทางเครือข่ายคอมพิวเตอร์ เช่น อินเทอร์เน็ต ในลักษณะเดียวกับการสื่อสารระหว่างโปรเซส (Inter-process communication) บนเครื่องเดียวกัน ความสามารถในการแลกเปลี่ยนข้อมูลระหว่างระบบที่ต่างกันนี้ (เช่น การแลกเปลี่ยนข้อมูลระหว่าง โปรแกรมที่เขียนโดยภาษาจาวา และโปรแกรมที่เขียนโดยภาษาไพทอน หรือการแลกเปลี่ยนข้อมูลระหว่างโปรแกรมประยุกต์ที่ทำงานบนไมโครซอฟท์วินโดวส์และโปรแกรมประยุกต์ที่ทำงานบนลินุกซ์) เกิดขึ้นได้เนื่องจากการใช้มาตรฐานเปิด โดย OASIS และ W3C เป็นคณะกรรมการหลักในการรับผิดชอบมาตรฐานและสถาปัตยกรรมของเว็บเซอร์วิซ 
title: เว็บเซอร์วิซ

text: หากคำนึงถึงความสามารถในระดับล่าง ภาษานี้ถูกออกแบบขึ้นเพื่อส่งเสริมการเขียนโปรแกรมที่ขึ้นอยู่กับเครื่องใดเครื่องหนึ่ง (machine-independent) โปรแกรมภาษาซีที่เขียนขึ้นตามมาตรฐานและเคลื่อนย้ายได้ สามารถแปลได้บนแพลตฟอร์มคอมพิวเตอร์และระบบปฏิบัติการต่าง ๆ อย่างกว้างขวาง โดยแก้ไขรหัสต้นฉบับเพียงเล็กน้อยหรือไม่ต้องแก้ไขเลย ภาษานี้สามารถใช้ได้บนแพลตฟอร์มได้หลากหลายตั้งแต่ไมโครคอนโทรลเลอร์ฝังตัวไปจนถึง[[แฮรี่เคน))
title: ภาษาซี