กลับไปหน้าบทความ

อ่าน 21 นาที

รายชื่อภาษาโปรแกรมตามประเภท

นี่คือรายชื่อ ภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้

รายชื่อภาษาโปรแกรมตามประเภท

นี่คือรายชื่อภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้

ภาษาการเขียนโปรแกรมเชิงเอเจนต์

การเขียนโปรแกรมเชิงเอเจนต์ช่วยให้นักพัฒนาสามารถสร้าง ขยาย และใช้งานซอฟต์แวร์เอเจนต์ซึ่งเป็นนามธรรมของวัตถุที่สามารถส่งข้อความไปยังเอเจนต์อื่นๆ ได้

ภาษาอาร์เรย์

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

ภาษาการเขียนโปรแกรมเชิงแง่มุม

การเขียนโปรแกรมเชิงแง่มุม (Aspect-oriented programming) ช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชันใหม่ลงในโค้ด ซึ่งเรียกว่าคำแนะนำ (advice ) โดยไม่ต้องแก้ไขโค้ดเดิม แต่จะใช้pointcutในการนำคำแนะนำนั้นไปใช้ในบล็อกโค้ด แทน

ภาษาแอสเซมบลี

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

ภาษาสำหรับเขียน

ภาษาสร้างสื่อ (Authoring language)คือภาษาโปรแกรมที่ออกแบบมาเพื่อให้ผู้ที่ไม่เชี่ยวชาญด้านคอมพิวเตอร์สามารถสร้างบทเรียน เว็บไซต์ และโปรแกรมคอมพิวเตอร์แบบโต้ตอบอื่นๆ ได้อย่างง่ายดาย

ภาษาอินเทอร์เฟซบรรทัดคำสั่ง

ภาษาอินเทอร์เฟซบรรทัดคำสั่ง (CLI) เรียกอีกอย่างว่า ภาษาแบตช์ หรือ ภาษาควบคุมงาน ตัวอย่างเช่น:

ภาษาที่รวบรวมไว้

ภาษาเหล่านี้โดยทั่วไปจะถูกประมวลผลโดยคอมไพเลอร์แม้ว่าในทางทฤษฎีแล้ว ภาษาใดๆ ก็สามารถคอมไพล์หรือตีความได้

ภาษาโปรแกรมเชิงการต่อเชื่อม

ภาษาโปรแกรมเชิงเชื่อมต่อ ( Concatenative programming language)เป็นภาษาโปรแกรมคอมพิวเตอร์แบบไร้จุด (point-free computer programming language ) ซึ่งนิพจน์ทั้งหมดแสดงถึงฟังก์ชันและการเรียงต่อกันของนิพจน์แสดงถึงการประกอบฟังก์ชัน (function composition )

ภาษาพร้อมกัน

ภาษา ที่ใช้การส่งข้อความมีโครงสร้างภาษาสำหรับการทำงานพร้อมกันรูปแบบการทำงานพร้อมกันที่โดดเด่นในภาษาหลักๆ เช่นJavaคือ การทำงาน พร้อมกันโดยใช้หน่วยความจำร่วมกันภาษาที่ทำงานพร้อมกันโดยใช้การส่งข้อความโดยทั่วไปได้รับแรงบันดาลใจจากแคลคูลัสกระบวนการ เช่นกระบวนการลำดับการสื่อสาร (CSP) หรือแคลคูลัส π

ภาษาการเขียนโปรแกรมแบบมีข้อจำกัด

ภาษา การเขียนโปรแกรมแบบมีข้อจำกัด (Constraint Programming Language ) เป็น ภาษา การเขียนโปรแกรมเชิงประกาศ (Declarative Programming Language) ที่ความสัมพันธ์ระหว่างตัวแปรถูกแสดงออกมาในรูปของข้อจำกัดการทำงานจะดำเนินไปโดยการพยายามหาค่าของตัวแปรที่ตรงตามข้อจำกัดที่ประกาศไว้ทั้งหมด

ภาษาในสัญญา

การออกแบบโดยใช้สัญญา (หรือการเขียนโปรแกรมโดยใช้สัญญา) คือการเขียนโปรแกรมโดยใช้เงื่อนไข ก่อนการ ดำเนินการ เงื่อนไข หลังการดำเนินการและความคงที่ ที่กำหนดไว้

ภาษาวงเล็บปีกกา

ภาษาที่มีวงเล็บปีกกาหรือวงเล็บเหลี่ยมมีไวยากรณ์ที่กำหนดบล็อกเป็นคำสั่งที่อยู่ระหว่างวงเล็บปีกกา หรือที่เรียกว่าวงเล็บเหลี่ยม{}ไวยากรณ์นี้มีต้นกำเนิดมาจากภาษา BCPL (ปี 1966) และได้รับความนิยมจาก ภาษา Cภาษาที่มีวงเล็บปีกกาหลายภาษาพัฒนามาจากหรือได้รับอิทธิพลอย่างมากจากภาษา Cตัวอย่างเช่น:

ภาษาการไหลของข้อมูล

ภาษา โปรแกรมแบบดาต้าโฟลว์อาศัยการแสดงภาพ (โดยปกติจะเป็นภาพ) ของการไหลของข้อมูลเพื่อกำหนดการทำงานของโปรแกรม มักใช้เพื่อตอบสนองต่อเหตุการณ์เฉพาะ หรือเพื่อประมวลผลกระแสข้อมูล ภาษาดาต้าโฟลว์ประกอบด้วย:

ภาษาที่เน้นข้อมูล

ภาษาที่เน้นข้อมูลเป็นหลัก (Data-oriented languages) เป็นเครื่องมือที่มีประสิทธิภาพในการค้นหาและจัดการความสัมพันธ์ที่เรียกว่าตารางความสัมพันธ์ระหว่างเอนทิตี (Entity Relationship Tables) ซึ่งทำหน้าที่แมปชุดข้อมูลหนึ่งไปยังชุดข้อมูลอื่น ภาษาที่เน้นข้อมูลเป็นหลัก ได้แก่:

ภาษาของตารางการตัดสินใจ

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

ภาษาเชิงประกาศ

ภาษาโปรแกรม เชิงประกาศ (Declarative languages ) แสดงตรรกะของการคำนวณโดยไม่ต้องอธิบายการไหลของกระบวนการอย่างละเอียดการเขียนโปรแกรมเชิงประกาศนั้นแตกต่างจาก การเขียนโปรแกรม เชิงคำสั่ง (Imperative programming) ผ่านภาษาโปรแกรมเชิงคำสั่ง ซึ่งการไหลของกระบวนการจะถูกกำหนดโดยลำดับ (คำสั่ง) ภาษาโปรแกรมเชิงฟังก์ชัน (Pure functional ) และ ภาษาโปรแกรม เชิงตรรกะ (Logic-based programming languages) ก็เป็นภาษาโปรแกรมเชิงประกาศเช่นกัน และเป็นหมวดหมู่ย่อยหลักของภาษาโปรแกรมเชิงประกาศ ส่วนนี้จะแสดงตัวอย่างเพิ่มเติมที่ไม่ได้อยู่ในหมวดหมู่ย่อยเหล่านั้น

ภาษาที่สามารถฝังได้

ในซอร์สโค้ด

ภาษาที่สามารถฝังโค้ดต้นฉบับได้ จะฝังโค้ดขนาดเล็กที่สามารถทำงานได้ลงในข้อความแบบอิสระ ซึ่งมักจะเป็นหน้าเว็บ

ภาษาฝังตัวฝั่งไคลเอ็นต์มีข้อจำกัดตามความสามารถของเบราว์เซอร์หรือไคลเอ็นต์ที่ต้องการใช้งาน จุดมุ่งหมายคือการเพิ่มความยืดหยุ่นให้กับหน้าเว็บโดยไม่ต้องติดต่อกับเซิร์ฟเวอร์อีก

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

ฝั่งเซิร์ฟเวอร์

ตัวอย่างข้างต้นนั้นมุ่งเน้นไปที่จุดประสงค์นี้โดยเฉพาะ ภาษาโปรแกรมอื่นๆ อีกมากมาย เช่นErlang , Scala , PerlและRubyก็สามารถดัดแปลงได้เช่นกัน (ตัวอย่างเช่น โดยการสร้างเป็น โมดูล ของ Apache )

ฝั่งไคลเอ็นต์

ในโค้ดวัตถุ

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

ภาษาการเขียนโปรแกรมเพื่อการศึกษา

ภาษาโปรแกรมถูกพัฒนาขึ้นมาโดยมีวัตถุประสงค์หลักเพื่อการสอนและการเรียนรู้การเขียนโปรแกรม

ภาษาลึกลับ

ภาษาโปรแกรมเชิงลึกลับคือภาษาโปรแกรมที่ออกแบบมาเพื่อทดสอบขีดจำกัดของการออกแบบภาษาโปรแกรมคอมพิวเตอร์ เพื่อเป็นการพิสูจน์แนวคิด หรือเพื่อเป็นเรื่องตลก

ภาษาเพิ่มเติม

ภาษาโปรแกรมส่วนขยายคือภาษาที่ฝังอยู่ในโปรแกรมอื่น และใช้เพื่อควบคุมคุณสมบัติของโปรแกรมนั้นในสคริปต์ส่วนขยาย

ภาษาเจเนอเรชั่นที่สี่

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

ภาษาเชิงฟังก์ชัน

ภาษา โปรแกรมเชิงฟังก์ชันกำหนดโปรแกรมและซับรูทีนเป็นฟังก์ชันทางคณิตศาสตร์และถือว่าพวกมันเป็นฟังก์ชันระดับแรก ภาษาที่เรียกกันว่าภาษาเชิงฟังก์ชันหลายภาษานั้น "ไม่บริสุทธิ์" เนื่องจากมีคุณสมบัติเชิงคำสั่งอยู่ด้วย ภาษาเชิงฟังก์ชันหลายภาษาเชื่อมโยงกับเครื่องมือคำนวณทางคณิตศาสตร์ ภาษาเชิงฟังก์ชันได้แก่:

บริสุทธิ์

ไม่บริสุทธิ์

ภาษาอธิบายฮาร์ดแวร์

ในด้านอิเล็กทรอนิกส์ภาษาอธิบายฮาร์ดแวร์ (HDL) เป็นภาษาคอมพิวเตอร์เฉพาะทางที่ใช้ในการอธิบายโครงสร้าง การออกแบบ และการทำงานของวงจรอิเล็กทรอนิกส์ โดยเฉพาะอย่างยิ่งวงจรตรรกะดิจิทัล ภาษา HDL ที่ใช้กันอย่างแพร่หลายและได้รับการสนับสนุนอย่างดีในอุตสาหกรรมมีสองประเภท ได้แก่VerilogและVHDLภาษาอธิบายฮาร์ดแวร์ประกอบด้วย:

HDL สำหรับการออกแบบวงจรอนาล็อก

  • Verilog-AMS (Verilog สำหรับวงจรอนาล็อกและวงจรผสม)
  • VHDL-AMS (VHDL พร้อมส่วนขยายด้านอนาล็อก/สัญญาณผสม)

HDL สำหรับการออกแบบวงจรดิจิทัล

ภาษาเชิงบังคับ

ภาษาโปรแกรมเชิงคำสั่งอาจเป็นภาษาที่มีหลายรูปแบบและอาจปรากฏอยู่ในหมวดหมู่อื่นๆ ต่อไปนี้คือรายชื่อภาษาโปรแกรมที่ใช้รูปแบบคำสั่ง :

ภาษาโหมดโต้ตอบ

ภาษาโปรแกรมแบบโต้ตอบ (Interactive mode languages) หรือที่รู้จักกันในชื่อREPLทำหน้าที่เสมือนเชลล์: สามารถป้อนนิพจน์หรือคำสั่งทีละรายการ และจะเห็นผลลัพธ์ของการประเมินได้ทันที

ภาษาที่แปลแล้ว

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

ภาษาแบบวนซ้ำ

ภาษาโปรแกรมแบบวนซ้ำถูกสร้างขึ้นโดยใช้หรือมี ตัวสร้าง (generator ) เป็นส่วนประกอบหลัก

ภาษาตามประเภทการจัดการหน่วยความจำ

ภาษาที่รวบรวมขยะ

การจัดการหน่วยความจำอัตโนมัติ (Garbage Collection หรือ GC) เป็นรูปแบบหนึ่งของการจัดการหน่วยความจำแบบอัตโนมัติ ตัวเก็บขยะจะพยายามเรียกคืนหน่วยความจำที่โปรแกรมจัดสรรไว้แต่ไม่ได้ใช้งานอีกต่อไป

ภาษาที่มีการจัดการหน่วยความจำด้วยตนเอง

ภาษาที่มีตัวเลือกการจัดการหน่วยความจำด้วยตนเอง

ภาษาโปรแกรมบางภาษาที่ไม่มีความสามารถในการจัดการหน่วยความจำด้วยตนเอง เช่นCython [ 31 ] Swift [ c ] และScala [ 32 ] (เฉพาะScala Nativeเท่านั้น)สามารถนำเข้าหรือเรียกใช้ฟังก์ชันเช่นและจากCผ่านอินเทอร์เฟซฟังก์ชันภายนอกได้ mallocfree

ภาษาที่มีการจัดการหน่วยความจำแบบกำหนดได้แน่นอน

ภาษาที่มีระบบนับอ้างอิงอัตโนมัติ (ARC)

ภาษาที่ใช้รายการเป็นฐาน – LISP

ภาษาที่ใช้โครงสร้างข้อมูลแบบลิสต์เป็น ภาษาที่มีโครงสร้างข้อมูลประเภทหนึ่งซึ่งอิงตามโครงสร้างข้อมูล แบบลิสต์

ภาษาเล็กๆ

ภาษาขนาดเล็ก[ 35 ]ให้บริการโดเมนปัญหาเฉพาะทาง

  • awk – ใช้สำหรับจัดการไฟล์ข้อความ
  • sed – วิเคราะห์และแปลงข้อความ
  • SQL – มีคำหลักเพียงไม่กี่คำและไม่มีโครงสร้างที่จำเป็นทั้งหมดสำหรับภาษาโปรแกรมแบบเต็มรูปแบบ[ d ] – ระบบจัดการฐานข้อมูลหลายระบบขยาย SQL ด้วยโครงสร้างเพิ่มเติมในฐานะภาษาสำหรับขั้นตอนการจัดเก็บ
  • XPL - ภาษาที่ออกแบบมาเพื่อใช้ในการเขียนคอมไพเลอร์ แต่ไม่ได้จำกัดอยู่เฉพาะการใช้งานนี้เท่านั้น

ภาษาเชิงตรรกะ

ภาษา ที่ใช้ตรรกะเป็นพื้นฐานจะระบุชุดคุณลักษณะที่คำตอบต้องมี แทนที่จะระบุชุดขั้นตอนในการหาคำตอบ

ภาษาโปรแกรมที่โดดเด่นซึ่งใช้ รูปแบบการเขียนโปรแกรมนี้ได้แก่:

ภาษาเครื่อง

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

ภาษามาโคร

ภาษามาโครการแทนที่ข้อความ

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

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

  • ตัวประมวลผลล่วงหน้า C
  • m4 (เดิมทีเป็นของ AT&T และรวมอยู่ในชุด Unix)
  • ML/I (ตัวประมวลผลมาโครอเนกประสงค์)
  • TTM (พัฒนาขึ้นที่สถาบันเทคโนโลยีแคลิฟอร์เนีย)

ภาษามาโครแอปพลิเคชัน

ภาษาสคริปต์เช่นTclและECMAScript ( ActionScript , ECMAScript สำหรับ XML , JavaScript , JScript ) ได้ถูกฝังอยู่ในแอปพลิเคชันต่างๆ บางครั้งภาษาเหล่านี้ถูกเรียกว่า "ภาษามาโคร" แม้ว่าจะมีความหมายแตกต่างจากมาโครแบบแทนที่ข้อความ เช่นm4อยู่บ้างก็ตาม

ภาษาเมตาโปรแกรมมิ่ง

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

ภาษาแบบโมดูลาร์

การเขียนโปรแกรมแบบโมดูลาร์เป็นรูปแบบการเขียนโปรแกรมที่จัดระเบียบฟังก์ชันและสัญลักษณ์ต่างๆ ออกเป็นโมดูลอิสระ

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

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

  • 1C: ภาษาโปรแกรมระดับองค์กร (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ, อิงตามต้นแบบ, เชิงฟังก์ชัน)
  • ภาษา Ada ( แบบขนาน , แบบกระจาย , ทั่วไป ( การเขียนโปรแกรมแบบเมตาเทมเพลต ), แบบคำสั่ง , เชิงวัตถุ ( แบบคลาส ))
  • ALF ( ฟังก์ชันนัล ลอจิก )
  • อัลมา-0 (ข้อจำกัด, คำสั่ง, ตรรกะ)
  • APL (ภาษาโปรแกรมเชิงฟังก์ชัน, ภาษาโปรแกรมเชิงคำสั่ง, ภาษาโปรแกรมเชิงวัตถุ (แบบคลาส))
  • เบต้า (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส))
  • C++ (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เชิงฟังก์ชัน, เมตาโปรแกรมมิง)
  • C# (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เชิงฟังก์ชัน, เชิงประกาศ)
  • เซย์ลอน (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เชิงฟังก์ชัน, เชิงประกาศ)
  • ChucK (เชิงคำสั่ง, เชิงวัตถุ, อิงเวลา, พร้อมกัน, แบบเรียลไทม์)
  • Cobra (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เชิงฟังก์ชัน, เชิงสัญญา)
  • ภาษาลิสป์ทั่วไป (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบใช้คลาส), เชิงแง่มุม (ผู้ใช้สามารถเพิ่มรูปแบบอื่นๆ ได้ เช่น ตรรกศาสตร์))
  • Curl (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เมตาโปรแกรมมิ่ง)
  • เคอร์รี (แบบขนาน, แบบฟังก์ชัน, แบบตรรกะ)
  • D (ทั่วไป, เชิงคำสั่ง, เชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส), เมตาโปรแกรมมิง)
  • ภาษาดาร์ท (ทั่วไป, เชิงคำสั่ง, เชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส))
  • Delphi Object Pascal (ทั่วไป, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), เมตาโปรแกรมมิ่ง)
  • ดีแลน (เชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส))
  • ECMAScript (ภาษาเชิงฟังก์ชัน ภาษาเชิงคำสั่ง ภาษาเชิงวัตถุ (อิงตามต้นแบบ))
  • Eiffel (เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), ทั่วไป, เชิงฟังก์ชัน (เอเจนต์), พร้อมกัน (SCOOP))
  • F# (ภาษาเชิงฟังก์ชัน, ภาษาทั่วไป, ภาษาเชิงวัตถุ (แบบคลาส), ภาษาเชิงวัตถุ)
  • แฟนทอม (เชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส))
  • Go (คำสั่ง, ขั้นตอนการปฏิบัติ)
  • Groovy (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส), เชิงคำสั่ง, และเชิงกระบวนการ)
  • ท่าเรือ
  • กระโดด
  • J (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส))
  • ภาษาจาวา (ทั่วไป, แบบคำสั่ง, เชิงวัตถุ (แบบคลาส), เชิงฟังก์ชัน)
  • ภาษาจูเลีย (ภาษาเชิงคำสั่ง, การเรียกใช้ฟังก์ชันหลายทาง ("เชิงวัตถุ"), ภาษาเชิงฟังก์ชัน, เมตาโปรแกรมมิง)
  • LabVIEW ( แบบภาพ , การไหลของข้อมูล , การทำงานพร้อมกัน, แบบโมดูลาร์, ฟังก์ชัน, เชิงวัตถุ, การเขียนสคริปต์)
  • Lua (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ ( อิงตามต้นแบบ ))
  • เมอร์คิวรี (เชิงฟังก์ชัน เชิงตรรกะ และเชิงวัตถุ)
  • โปรโตคอลเมตาออบเจ็กต์ (เชิงวัตถุ (แบบคลาส แบบต้นแบบ))
  • Nemerle (การเขียนโปรแกรมเชิงฟังก์ชัน, เชิงวัตถุ (แบบคลาส), เชิงคำสั่ง, เมตาโปรแกรมมิ่ง)
  • ออบเจ็กทีฟซี (เชิงคำสั่ง, เชิงวัตถุ (อิงตามคลาส), สะท้อนกลับได้)
  • OCaml (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส), แบบแยกส่วน)
  • Oz ( ภาษาโปรแกรมเชิงฟังก์ชัน (การประเมิน: กระตือรือร้น , เกียจคร้าน ), ตรรกะ, ข้อจำกัด, คำสั่ง, เชิงวัตถุ (แบบคลาส), พร้อมกัน, กระจาย) และระบบการเขียนโปรแกรมข้ามแพลตฟอร์ม Mozart
  • ภาษาปาสคาลเชิงวัตถุ (ภาษาเชิงคำสั่ง, ภาษาเชิงวัตถุ (แบบคลาส))
  • ภาษา Perl (เชิงคำสั่ง, เชิงฟังก์ชัน (ไม่สามารถเป็นเชิงฟังก์ชันล้วนๆ ได้), เชิงวัตถุ, เชิงคลาส, เชิงแง่มุม (ผ่านโมดูล))
  • PHP (ภาษาเชิงคำสั่ง, ภาษาเชิงวัตถุ, ภาษาเชิงฟังก์ชัน (ไม่สามารถเป็นภาษาเชิงฟังก์ชันล้วนๆ ได้))
  • ไพค์ (ภาษาโปรแกรมมิ่งแบบไดนามิกอเนกประสงค์ระดับสูงที่ใช้การตีความ ใช้งานได้หลายแพลตฟอร์ม)
  • Prograph (การเขียนโปรแกรมเชิงข้อมูลแบบไหล, เชิงวัตถุ (แบบคลาส), แบบภาพ)
  • Python (ภาษาโปรแกรมเชิงฟังก์ชัน, ภาษาคอมไพล์, ภาษาตีความ, ภาษาเชิงวัตถุ (แบบคลาส), ภาษาเชิงคำสั่ง, เมตาโปรแกรมมิง, ส่วนขยาย, ภาษาที่ไม่บริสุทธิ์, โหมดโต้ตอบ, แบบวนซ้ำ, แบบสะท้อนกลับ, การเขียนสคริปต์)
  • R (อาร์เรย์, การตีความ, ไม่บริสุทธิ์, โหมดโต้ตอบ, อิงตามรายการ, อิงตามต้นแบบเชิงวัตถุ, การเขียนสคริปต์)
  • Racket (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส) และผู้ใช้สามารถขยายเพิ่มเติมได้)
  • Raku (ระบบประมวลผลแบบขนาน, แบบเชื่อมต่อ, แบบฟังก์ชัน, เมตาโปรแกรมมิง, แบบทั่วไป, แบบเชิงคำสั่ง, การสะท้อนกลับ, เชิงวัตถุ, ไปป์ไลน์, แบบตอบสนอง และผ่านข้อจำกัดของไลบรารี, แบบกระจาย)
  • Rebol (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (อิงตามต้นแบบ), เมตาโปรแกรมมิ่ง (แบบเฉพาะถิ่น))
  • สีแดง (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (อิงตามต้นแบบ), เมตาโปรแกรมมิ่ง (แบบเฉพาะถิ่น))
  • รูบี้ (ภาษาโปรแกรมเชิงคำสั่ง, ภาษาโปรแกรมเชิงฟังก์ชัน, ภาษาโปรแกรมเชิงวัตถุ (แบบใช้คลาส), เมตาโปรแกรมมิ่ง)
  • Rust (ภาษาโปรแกรมแบบขนาน, ภาษาโปรแกรมเชิงฟังก์ชัน, ภาษาโปรแกรมเชิงคำสั่ง, ภาษาโปรแกรมเชิงวัตถุ, ภาษาโปรแกรมทั่วไป, การเขียนโปรแกรมแบบเมตา, ภาษาโปรแกรมแบบคอมไพล์)
  • Scala (ภาษาโปรแกรมเชิงฟังก์ชันและเชิงวัตถุ)
  • Seed7 (เชิงคำสั่ง, เชิงวัตถุ, ทั่วไป)
  • SISAL (concurrent, dataflow, functional)
  • สเปรดชีต (ใช้งานได้จริง, แสดงผลด้วยภาพ)
  • Swift (ภาษาโปรแกรมเชิงโปรโตคอล, เชิงวัตถุ, เชิงฟังก์ชัน, เชิงคำสั่ง, โครงสร้างแบบบล็อก)
  • Tcl (ภาษาโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส))
    • ชา (การเขียนโปรแกรมเชิงฟังก์ชัน, เชิงคำสั่ง, เชิงวัตถุ (แบบคลาส))
  • V (Vlang) (เชิงฟังก์ชัน, เชิงคำสั่ง, เชิงกระบวนการ, เชิงโครงสร้าง, เชิงพร้อมกัน)
  • Windows PowerShell (เชิงฟังก์ชัน, เชิงคำสั่ง, แบบไปป์ไลน์, เชิงวัตถุ (แบบคลาส))
  • Wolfram Mathematica ( ภาษา Wolfram )

การวิเคราะห์เชิงตัวเลข

แม้ว่าจะ มีภาษาโปรแกรมอเนกประสงค์หลายภาษา เช่นCและPythonที่ใช้ในงานคำนวณทางเทคนิค แต่รายชื่อนี้เน้นเฉพาะภาษาที่ใช้ในงานคำนวณทางเทคนิคเกือบทั้งหมดเท่านั้น

ภาษาที่ไม่ใช้ภาษาอังกฤษเป็นพื้นฐาน

ภาษาเชิงวัตถุแบบคลาส

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

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

การจัดส่งครั้งเดียว

ภาษาเชิงวัตถุแบบต้นแบบ

ภาษาโปรแกรมแบบใช้ต้นแบบ (Prototype-based languages)คือภาษาโปรแกรมเชิงวัตถุที่ขจัดความแตกต่างระหว่างคลาสและอินสแตนซ์ออกไป:

ภาษาของกฎล้ำหน้า

ภาษา โปรแกรมที่ใช้กฎนอกด้านจะระบุบล็อกของโค้ดด้วยการ เยื้อง

ภาษาเชิงกระบวนการ

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

ภาษาการสอบถาม

ภาษาสะท้อนคิด

ภาษา โปรแกรมแบบสะท้อน (Reflection programming languages) ช่วยให้โปรแกรมสามารถตรวจสอบและอาจแก้ไขโครงสร้างระดับสูงของตนเองได้ในขณะรันไทม์หรือคอมไพล์ไทม์ สิ่งนี้พบได้บ่อยในภาษาโปรแกรมระดับสูงที่ใช้เครื่องเสมือน (Virtual Machine) เช่นSmalltalkและพบได้น้อยในภาษาโปรแกรมระดับต่ำ เช่นCภาษาและแพลตฟอร์มที่รองรับการสะท้อน:

ภาษาที่ใช้กฎเกณฑ์

ภาษาโปรแกรมแบบใช้กฎจะสร้างกฎขึ้นเมื่อเงื่อนไขในชุดข้อมูลกระตุ้นการทำงาน โดยจะเลือกชุดเงื่อนไขบางชุดจากทั้งหมด และดำเนินการตามคำสั่งที่อยู่ในกฎเหล่านั้น ภาษาโปรแกรมแบบใช้กฎได้แก่:

ภาษาสคริปต์

ภาษาที่ใช้สแต็ก

ภาษาโปรแกรมแบบสแต็ก (Stack-based languages) เป็น ภาษาโปรแกรมประเภทหนึ่งที่มีโครงสร้างข้อมูล แบบสแต็ก

ภาษาซิงโครนัส

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

ตัวอย่าง:

ภาษาแรเงา

ภาษา สำหรับการ สร้างเงา (Shading Language)คือภาษาการเขียนโปรแกรมกราฟิกที่ปรับให้เหมาะสมกับการเขียนโปรแกรมเอฟเฟ็กต์เงา รูปแบบของภาษาดังกล่าวโดยทั่วไปประกอบด้วยชนิดข้อมูลพิเศษ เช่น "สี" และ "ค่าปกติ" เนื่องจากตลาดเป้าหมายสำหรับกราฟิกคอมพิวเตอร์ 3 มิติมีความหลากหลาย

การเรนเดอร์แบบเรียลไทม์

เทคโนโลยีนี้มอบทั้งนามธรรมของฮาร์ดแวร์ที่สูงขึ้นและรูปแบบการเขียนโปรแกรมที่ยืดหยุ่นกว่าแบบเดิมที่ใช้สมการการแปลงและการแรเงาแบบตายตัว ซึ่งทำให้นักเขียนโปรแกรมควบคุมกระบวนการเรนเดอร์ได้มากขึ้นและนำเสนอเนื้อหาที่สมบูรณ์ยิ่งขึ้นด้วยต้นทุนที่ต่ำกว่า

การเรนเดอร์แบบออฟไลน์

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

ภาษาการจัดการไวยากรณ์

ภาษาเหล่านี้ช่วยในการสร้างตัววิเคราะห์คำศัพท์และตัวแยกวิเคราะห์สำหรับไวยากรณ์ที่ไม่ขึ้นกับบริบท

ภาษาของระบบ

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

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

ภาษาผู้ริเริ่มปรากฏครั้งแรกได้รับอิทธิพลจากใช้สำหรับ
เอสโพลบริษัท เบอร์โรห์ส คอร์ปอเรชั่น1961อัลโกล 60เอ็มซีพี
พีแอล/ไอIBM , SHAREพ.ศ. 2507ALGOL 60, FORTRAN, และ COBOL บางส่วนมัลติซีส์
พีแอล360นิคเลาส์ เวิร์ธ1968อัลโกล 60อัลโกล ดับเบิลยู
ซีเดนนิส ริทชี่1969บีซีพีแอลเคอร์เนลของระบบปฏิบัติการส่วนใหญ่รวมถึงWindows NTและระบบ ที่คล้าย Unix ส่วนใหญ่
พีแอล/เอสไอบีเอ็ม196xพีแอล/ไอโอเอส/360
บลิสมหาวิทยาลัยคาร์เนกีเมลลอน1970ALGOL-PL/I [ 47 ]วีเอ็มเอส (บางส่วน)
พีแอล/8ไอบีเอ็ม197xพีแอล/ไอเอไอเอ็กซ์
PL/MP และ PL/MIไอบีเอ็ม197xพีแอล/ไอซีพีเอฟเอฟ , โอเอส/400
พีแอล-6บริษัท ฮันนี่เวลล์ อิงค์197xพีแอล/ไอซีพี-6
ซิมพลาCDC197xร่าเริงระบบย่อยของระบบปฏิบัติการ โนมัส (NOS) , คอมไพเลอร์ส่วนใหญ่, โปรแกรมแก้ไขไฟล์ FSE
ซี++บียาร์เน สโตรสตรุปพ.ศ. 2522ซีซิมูล่าดูแอปพลิเคชัน C++ [ 48 ]
อาดาฌอง อิคบิอาห์ , เอส. ทักเกอร์ แทฟต์พ.ศ. 2526ALGOL 68 , ปาสกาล , C ++ , Java , หอไอเฟลระบบฝังตัว, เคอร์เนลระบบปฏิบัติการ, คอมไพเลอร์, เกม, การจำลอง, ดาวเทียมขนาดเล็ก (CubeSat) , การควบคุมการจราจรทางอากาศ และระบบอิเล็กทรอนิกส์การบิน
ดีดาวอังคารดิจิทัล2001ซี++โดเมนหลายแห่ง[ 49 ]
นิมแอนเดรียส รัมป์ฟ2008Ada , Modula-3 , Lisp , C++ , Object Pascal , Python , Oberonเคอร์เนลระบบปฏิบัติการ, คอมไพเลอร์, เกม
สนิมMozilla Research [ 50 ]2010C++ , Haskell , Erlang , Rubyเอ็นจิ้นการจัดวางเซอร์โว , RedoxOS
สวิฟต์บริษัท แอปเปิล อิงค์2014C , Objective-C , RustการพัฒนาแอปmacOSและiOS [ h ]
ซิกแอนดรูว์ เคลลีย์ 2016 C , C++ , LLVM IR , Go , Rust , JavaScriptเพื่อใช้แทน C
วี (วลัง)อเล็กซานเดอร์ เมดเวดนิคอฟ 2019 C , Go , Oberon-2 , Rust , Swift , Kotlinระบบปฏิบัติการ Vinix, เคอร์เนลระบบปฏิบัติการ, คอมไพเลอร์, เกม

ภาษาการแปลง

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

ภาษาภาพ

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

ภาษาเวิร์ธ

นักวิทยาศาสตร์คอมพิวเตอร์นิคลาอุส เวิร์ธได้ออกแบบและพัฒนาภาษาโปรแกรมที่มีอิทธิพลหลายภาษา

ภาษาที่ใช้ XML

ภาษาเหล่านี้เป็นภาษาที่พัฒนาขึ้นโดยใช้ XML หรือทำงานบนXML

ดูเพิ่มเติม

หมายเหตุ

  1. ^การใช้งาน Ada บางส่วนมีตัวเก็บขยะ [ 17 ]แม้ว่าข้อกำหนดของภาษาจะไม่กำหนดให้ต้องรวมไว้ก็ตาม
  2. ^ในตอนแรกนักพัฒนาต้องเรียกคืนหน่วยความจำด้วยตนเองโดยใช้saveและrestorePostScript ระดับ 2 ได้นำตัวเก็บขยะมาใช้ แต่การใช้งานนั้นเป็นทางเลือก [ 28 ]
  3. ^บนแพลตฟอร์มของ Apple ฟังก์ชันเหล่านี้จะถูกนำเข้าจากไลบรารีมาตรฐาน C (ซึ่งนำเข้าจากหรือFoundation); บน Linux นักพัฒนาจำเป็นต้องนำเข้าและบน WindowsAppKitUIKitGlibcucrt
  4. ^วัตถุของ SQL คือชุดของระเบียนฐานข้อมูลซึ่งเรียกว่าตารางภาษาโปรแกรม แบบเต็มรูปแบบ สามารถระบุอัลกอริทึม ได้ โดยไม่ขึ้นอยู่กับเวลาการทำงานดังนั้นอัลกอริทึมจึงสามารถถือได้ว่าสร้างผลลัพธ์ที่ใช้งานได้ ในทางตรงกันข้าม SQL สามารถเลือกได้เฉพาะระเบียนที่จำกัดอยู่ในชุดข้อมูลปัจจุบันเท่านั้น ซึ่งก็คือข้อมูลที่มีอยู่ในระบบ แทนที่จะสร้างข้อความที่ระบุความถูกต้องของผลลัพธ์
  5. ^ข้อยกเว้นที่น่าสนใจคือ CPU ซีรีส์ 1801 ของ โซเวียต/รัสเซีย ซึ่งเดิมทีใช้สถาปัตยกรรมชุดคำสั่ง (ISA) ภายในประเทศของตนเอง แต่ต่อมาได้รับการออกแบบใหม่ให้เข้ากันได้กับ PDP-11ตามนโยบาย
  6. ^ a bไม่แสดงรายการรุ่นย่อย มีเพียงรายการรุ่นพื้นฐานเท่านั้น
  7. ^แนวคิดเรื่องอ็อบเจ็กต์ที่มีความหมายเชิงวัตถุแบบการเรียกใช้ฟังก์ชันแบบเดี่ยว (single-dispatch) แบบดั้งเดิมนั้นไม่มีอยู่ใน Julia แต่จะใช้การเรียกใช้ฟังก์ชันแบบหลายฟังก์ชัน (multiple dispatch) ที่ครอบคลุมกว่าสำหรับประเภทข้อมูลที่แตกต่างกันในขณะรันไทม์แทน
  8. ^ Swift ใช้การนับจำนวนการอ้างอิงอัตโนมัติ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=List_of_programming_languages_by_type&oldid=1361290141#Curly_bracket_languages ​​"

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รายชื่อภาษาโปรแกรมตามประเภท

นี่คือรายชื่อ ภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้

ภาษาการเขียนโปรแกรมเชิงเอเจนต์

การเขียนโปรแกรมเชิงเอเจนต์ช่วยให้นักพัฒนาสามารถสร้าง ขยาย และใช้งาน ซอฟต์แวร์เอเจนต์ ซึ่งเป็นนามธรรมของวัตถุที่สามารถส่งข้อความไปยังเอเจนต์อื่นๆ ได้

ภาษาอาร์เรย์

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

ภาษาการเขียนโปรแกรมเชิงแง่มุม

การเขียนโปรแกรมเชิงแง่มุม (Aspect-oriented programming) ช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชันใหม่ลงในโค้ด ซึ่งเรียกว่า คำแนะนำ (advice ) โดยไม่ต้องแก้ไขโค้ดเดิม แต่จะใช้ pointcut ในการนำคำแนะนำนั้นไปใช้ในบล็อกโค้ด แทน