อ่าน 21 นาที
รายชื่อภาษาโปรแกรมตามประเภท
นี่คือรายชื่อ ภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้
รายชื่อภาษาโปรแกรมตามประเภท
| รายการภาษาโปรแกรม |
|---|
นี่คือรายชื่อภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้
ภาษาการเขียนโปรแกรมเชิงเอเจนต์
การเขียนโปรแกรมเชิงเอเจนต์ช่วยให้นักพัฒนาสามารถสร้าง ขยาย และใช้งานซอฟต์แวร์เอเจนต์ซึ่งเป็นนามธรรมของวัตถุที่สามารถส่งข้อความไปยังเอเจนต์อื่นๆ ได้
ภาษาอาร์เรย์
ภาษา การเขียนโปรแกรมแบบอาร์เรย์ (หรือเรียกอีกอย่างว่าภาษาเวกเตอร์หรือภาษาหลายมิติ ) จะขยายการดำเนินการบนค่าสเกลาร์ให้สามารถนำไปใช้กับเวกเตอร์เมทริกซ์และอาร์เรย์มิติสูงได้ อย่างโปร่งใส
ภาษาการเขียนโปรแกรมเชิงแง่มุม
การเขียนโปรแกรมเชิงแง่มุม (Aspect-oriented programming) ช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชันใหม่ลงในโค้ด ซึ่งเรียกว่าคำแนะนำ (advice ) โดยไม่ต้องแก้ไขโค้ดเดิม แต่จะใช้pointcutในการนำคำแนะนำนั้นไปใช้ในบล็อกโค้ด แทน
ภาษาแอสเซมบลี
ภาษาแอสเซมบลีมีความสัมพันธ์โดยตรงกับภาษาเครื่อง (ดูด้านล่าง ) ดังนั้นคำสั่งในรหัสเครื่องจึงปรากฏในรูปแบบที่มนุษย์เข้าใจได้ แม้ว่าจะไม่มีการจับคู่แบบหนึ่งต่อหนึ่งระหว่างคำสั่งแต่ละคำสั่งกับคำสั่งย่อยแต่ละคำสั่งก็ตาม ภาษาแอสเซมบลีช่วยให้นักเขียนโปรแกรมสามารถใช้ที่อยู่เชิงสัญลักษณ์ ซึ่งแอสเซมเบลอร์จะแปลงเป็นที่อยู่สัมบูรณ์หรือ ที่ อยู่ที่สามารถย้ายตำแหน่งได้ แอสเซมเบลอร์ส่วนใหญ่ยังรองรับมาโครและค่าคงที่เชิงสัญลักษณ์ด้วย
ภาษาสำหรับเขียน
ภาษาสร้างสื่อ (Authoring language)คือภาษาโปรแกรมที่ออกแบบมาเพื่อให้ผู้ที่ไม่เชี่ยวชาญด้านคอมพิวเตอร์สามารถสร้างบทเรียน เว็บไซต์ และโปรแกรมคอมพิวเตอร์แบบโต้ตอบอื่นๆ ได้อย่างง่ายดาย
ภาษาอินเทอร์เฟซบรรทัดคำสั่ง
ภาษาอินเทอร์เฟซบรรทัดคำสั่ง (CLI) เรียกอีกอย่างว่า ภาษาแบตช์ หรือ ภาษาควบคุมงาน ตัวอย่างเช่น:
- 4DOS (เชลล์สำหรับพีซี IBM)
- 4OS2 (เชลล์สำหรับพีซี IBM)
- ไฟล์แบตช์สำหรับDOSและWindows
- COMMAND.COMเป็นภาษาคำสั่งสำหรับ DOS และ Windows รุ่นก่อน Windows NT
- ภาษาคำสั่งcmd.exe สำหรับ Windows NT
- ช
- CLIST (รายการคำสั่ง MVS)
- ผู้บริหาร CMS
- csh
- ภาษาคำสั่งดิจิทัล (CLI) สำหรับ OpenVMS
- ผู้บริหาร 2
- คาดหวัง
- ปลา
- นูเชลล์
- วินโดวส์พาวเวอร์เชลล์
- อาร์ซี
- เร็กซ์
- TACL (ภาษาโปรแกรม)
ภาษาที่รวบรวมไว้
ภาษาเหล่านี้โดยทั่วไปจะถูกประมวลผลโดยคอมไพเลอร์แม้ว่าในทางทฤษฎีแล้ว ภาษาใดๆ ก็สามารถคอมไพล์หรือตีความได้
- อาร์คทีเอส
- แอ็กชันสคริปต์
- อาดา
- อัลโกล 58
- อัลโกล 60
- อัลโกล 68
- นักบัลเล่ต์ ( รันไทม์ ไบต์โค้ด )
- ภาษา BASIC (รวมถึงภาษา BASIC เวอร์ชันแรกของ Dartmouth)
- บีซีพีแอล
- ซี
- ซี++
- C# (ใน รันไทม์ CIL )
- ซีลอน (แปลงเป็นไบต์โค้ด JVM )
- เย็น
- คลิปเปอร์ 5.3
- CLEOสำหรับคอมพิวเตอร์ Leo
- Clojure (แปลงเป็นไบต์โค้ด JVM )
- โคบอล
- งูเห่า
- ลิสปาร์กทั่วไป
- คริสตัล
- เคิร์ล
- ดี
- DASL→Java, JavaScript (JS), JSP, Flex.war
- เดลฟี ( ระบบพัฒนา Object PascalของBorland )
- DIBOL (Digital COBOL)
- ดีแลน
- หอไอเฟล
- ต้นเอล์ม
- อีแมคส์ ลิสป์
- มรกต
- เออร์ลัง
- ปัจจัย
- ฟอร์ทราน
- เกาส์
- ไป
- Gosu (แปลงเป็นไบต์โค้ด JVM )
- Groovy (แปลงเป็นไบต์โค้ด JVM )
- ฮัสเคลล์
- ท่าเรือ
- โฮลีซี
- แจ้งข้อมูล (โดยปกติจะเป็นไฟล์เรื่องราวสำหรับGlulxหรือZ-code )
- Java (แปลงเป็นไบต์โค้ด JVMและยังรองรับGraalVM Native Image สำหรับไบนารีเนทีฟ)
- ร่าเริง
- จูเลีย (แปลงข้อมูลแบบเรียลไทม์เป็นรหัสเครื่อง)
- Kotlin (แปลงเป็นไบต์โค้ดของ JVMและยังรองรับ Kotlin/Native ซึ่งใช้LLVMในการสร้างไบนารี)
- แล็บวิว
- ปรอท
- เมซา
- เนเมอร์เล (แปลงเป็นไบต์โค้ดภาษาตัวกลาง)
- นิม
- ออบเจกทีฟซี
- พี
- ปาสคาล (การใช้งานส่วนใหญ่)
- พีแอล/ไอ
- นอกจากนี้
- ม้าโพนี่
- Python (สำหรับแปลงเป็นไบต์โค้ดVM ระดับกลาง )
- RPG (โปรแกรมสร้างรายงาน)
- สีแดง
- สนิม
- Scala (แปลงเป็นไบต์โค้ด JVM )
- แผนการ (เช่น แกมบิต)
- ลำดับ L
- ซิมูล่า
- ไบต์โค้ดVM ที่ไม่ขึ้นกับแพลตฟอร์มSmalltalk
- สวิฟต์
- เอ็มแอล
- มาตรฐาน ML (SML)
- โอแคมล์
- F# (แปลงเป็นCILเพื่อสร้างรันไทม์)
- ทิวริง
- วี (วลัง)
- วาลา
- Visual Basic ( รันไทม์CIL JIT)
- วิชวล ฟ็อกซ์โปร
- บทนำภาพ
- โซโจ
- ซิก
ภาษาโปรแกรมเชิงการต่อเชื่อม
ภาษาโปรแกรมเชิงเชื่อมต่อ ( Concatenative programming language)เป็นภาษาโปรแกรมคอมพิวเตอร์แบบไร้จุด (point-free computer programming language ) ซึ่งนิพจน์ทั้งหมดแสดงถึงฟังก์ชันและการเรียงต่อกันของนิพจน์แสดงถึงการประกอบฟังก์ชัน (function composition )
- ปัจจัย
- ไปข้างหน้า
- jq (รองรับการใช้งานฟังก์ชันด้วย)
- จอย
- โพสต์สคริปต์
- ราคุ
ภาษาพร้อมกัน
ภาษา ที่ใช้การส่งข้อความมีโครงสร้างภาษาสำหรับการทำงานพร้อมกันรูปแบบการทำงานพร้อมกันที่โดดเด่นในภาษาหลักๆ เช่นJavaคือ การทำงาน พร้อมกันโดยใช้หน่วยความจำร่วมกันภาษาที่ทำงานพร้อมกันโดยใช้การส่งข้อความโดยทั่วไปได้รับแรงบันดาลใจจากแคลคูลัสกระบวนการ เช่นกระบวนการลำดับการสื่อสาร (CSP) หรือแคลคูลัส π
- อาดา
- อาเลฟ
- อาเตจิ พีเอ็กซ์
- นักบัลเล่ต์
- C++ (ตั้งแต่C++11 เป็นต้นไป )
- ชัค
- ซิลค์
- Cω (ผ่านการสื่อสารแบบอะซิงโครนัส)
- โคลจูร์
- โบสถ์
- โคอาร์เรย์ฟอร์ทราน
- ปาสคาลแบบพร้อมกัน
- แกง
- อี
- ไอเฟล (ผ่าน กลไก SCOOP , Simple Concurrent Object-Oriented Computation)
- ยาอายุวัฒนะ
- มรกต (ผ่านเส้นด้ายและจอภาพ)
- Erlang (ผ่านการส่งข้อความแบบอะซิงโครนัสโดยไม่มีการแบ่งปันข้อมูลใดๆ)
- แผนการแกมบิต (โดยใช้ไลบรารี Termite)
- แวววาว
- ไป
- Haskell (ผ่านการเขียนโปรแกรมแบบพร้อมกัน แบบกระจาย และแบบขนานบนเครื่องหลายเครื่อง)
- ชวา
- จูเลีย
- จูล (ผ่านการส่งข้อความ)
- แล็บวิว
- ลิมโบ้
- MultiLisp (ผ่านความสามารถในการประมวลผลแบบขนานขั้นสูง)
- โอแคมล์
- อ็อกแคม
- ออร์ค
- Oz (ผ่านการทำงานพร้อมกันโดยใช้สถานะร่วมกันและการส่งข้อความ รวมถึงฟิวเจอร์ และOz ข้ามแพลตฟอร์ม ของระบบการเขียนโปรแกรม Mozart)
- พี
- ม้าโพนี่
- พิคท์
- Python (ผ่านการประมวลผลแบบขนานตามเธรดและการประมวลผลแบบขนานตามกระบวนการ[ 4 ] )
- ราคุ[ 5 ]
- สนิม
- สกาล่า
- ลำดับ L
- เอสอาร์
- วี (วลัง)
- ซีขนานแบบรวม
- เอ็กซ์โปรค
ภาษาการเขียนโปรแกรมแบบมีข้อจำกัด
ภาษา การเขียนโปรแกรมแบบมีข้อจำกัด (Constraint Programming Language ) เป็น ภาษา การเขียนโปรแกรมเชิงประกาศ (Declarative Programming Language) ที่ความสัมพันธ์ระหว่างตัวแปรถูกแสดงออกมาในรูปของข้อจำกัดการทำงานจะดำเนินไปโดยการพยายามหาค่าของตัวแปรที่ตรงตามข้อจำกัดที่ประกาศไว้ทั้งหมด
ภาษาในสัญญา
การออกแบบโดยใช้สัญญา (หรือการเขียนโปรแกรมโดยใช้สัญญา) คือการเขียนโปรแกรมโดยใช้เงื่อนไข ก่อนการ ดำเนินการ เงื่อนไข หลังการดำเนินการและความคงที่ ที่กำหนดไว้
- เอดา (ตั้งแต่เอดา 2012)
- ลาก่อน
- โคลจูร์
- งูเห่า
- C++ (ตั้งแต่C++26 )
- ง[ 7 ]
- ดาฟนี
- หอไอเฟล
- ป้อม
- โคทลิน
- ปรอท
- Oxygene (เดิมชื่อ Chrome และ Delphi Prism [ 8 ] )
- แร็กเก็ต (รวมถึงสัญญาลำดับสูงกว่า และเน้นย้ำว่าการละเมิดสัญญาจะต้องตำหนิฝ่ายที่กระทำผิดและต้องทำเช่นนั้นด้วยคำอธิบายที่ถูกต้อง[ 9 ] )
- ซาเธอร์
- สกาล่า[ 10 ] [ 11 ]
- SPARK (ผ่านการวิเคราะห์แบบคงที่ของ โปรแกรม Ada )
- วาลา
- วิธีการพัฒนาเวียนนา (VDM)
ภาษาวงเล็บปีกกา
ภาษาที่มีวงเล็บปีกกาหรือวงเล็บเหลี่ยมมีไวยากรณ์ที่กำหนดบล็อกเป็นคำสั่งที่อยู่ระหว่างวงเล็บปีกกา หรือที่เรียกว่าวงเล็บเหลี่ยม{}ไวยากรณ์นี้มีต้นกำเนิดมาจากภาษา BCPL (ปี 1966) และได้รับความนิยมจาก ภาษา Cภาษาที่มีวงเล็บปีกกาหลายภาษาพัฒนามาจากหรือได้รับอิทธิพลอย่างมากจากภาษา Cตัวอย่างเช่น:
- เอบีแอล/ซี+
- อาเลฟ
- AWK
- อาร์คทีเอส
- บี
- บีซี
- บีซีพีแอล
- นักบัลเล่ต์
- ซี
- ซี++
- ซี#
- ศรีลังกา
- โบสถ์
- ชัค
- ซิลค์
- พายุไซโคลน
- ดี
- โผ
- DASL – พัฒนามาจากภาษา Java
- อี
- อีซีเอ็มเอสคริปต์
- จีแอลเอสแอล
- ไป
- HLSL
- ชวา
- ลิมโบ้
- แอลพีซี
- เมล
- เนเมอร์เล (วงเล็บปีกกาเป็นตัวเลือก) [ 12 ]
- ออบเจกทีฟซี
- พีซีคาสเซิล
- เพิร์ล
- พีพี
- ปิโก้
- หอก
- พาวเวอร์เชลล์
- อาร์
- ราคุ
- สนิม
- เอส-ลัง
- สกาล่า (วงเล็บปีกกาเป็นตัวเลือก)
- เซด
- ความแข็งแกร่ง[ 13 ]
- ซูเปอร์คอลไลเดอร์
- สวิฟต์
- ทีซีแอล
- อันเรียลสคริปต์
- วี (วลัง)
- โยริค
- ยัสส์
- ซิก
ภาษาการไหลของข้อมูล
ภาษา โปรแกรมแบบดาต้าโฟลว์อาศัยการแสดงภาพ (โดยปกติจะเป็นภาพ) ของการไหลของข้อมูลเพื่อกำหนดการทำงานของโปรแกรม มักใช้เพื่อตอบสนองต่อเหตุการณ์เฉพาะ หรือเพื่อประมวลผลกระแสข้อมูล ภาษาดาต้าโฟลว์ประกอบด้วย:
ภาษาที่เน้นข้อมูล
ภาษาที่เน้นข้อมูลเป็นหลัก (Data-oriented languages) เป็นเครื่องมือที่มีประสิทธิภาพในการค้นหาและจัดการความสัมพันธ์ที่เรียกว่าตารางความสัมพันธ์ระหว่างเอนทิตี (Entity Relationship Tables) ซึ่งทำหน้าที่แมปชุดข้อมูลหนึ่งไปยังชุดข้อมูลอื่น ภาษาที่เน้นข้อมูลเป็นหลัก ได้แก่:
ภาษาของตารางการตัดสินใจ
ตารางการตัดสินใจสามารถใช้เป็นเครื่องมือช่วยในการชี้แจงตรรกะก่อนเขียนโปรแกรมในภาษาใดๆ ก็ได้ แต่ในช่วงทศวรรษ 1960 มีภาษาโปรแกรมจำนวนหนึ่งที่พัฒนาขึ้นมาโดยที่ตรรกะหลักถูกแสดงออกมาโดยตรงในรูปแบบของตารางการตัดสินใจ ซึ่งรวมถึง:
ภาษาเชิงประกาศ
ภาษาโปรแกรม เชิงประกาศ (Declarative languages ) แสดงตรรกะของการคำนวณโดยไม่ต้องอธิบายการไหลของกระบวนการอย่างละเอียดการเขียนโปรแกรมเชิงประกาศนั้นแตกต่างจาก การเขียนโปรแกรม เชิงคำสั่ง (Imperative programming) ผ่านภาษาโปรแกรมเชิงคำสั่ง ซึ่งการไหลของกระบวนการจะถูกกำหนดโดยลำดับ (คำสั่ง) ภาษาโปรแกรมเชิงฟังก์ชัน (Pure functional ) และ ภาษาโปรแกรม เชิงตรรกะ (Logic-based programming languages) ก็เป็นภาษาโปรแกรมเชิงประกาศเช่นกัน และเป็นหมวดหมู่ย่อยหลักของภาษาโปรแกรมเชิงประกาศ ส่วนนี้จะแสดงตัวอย่างเพิ่มเติมที่ไม่ได้อยู่ในหมวดหมู่ย่อยเหล่านั้น
- อนาลิติกา
- Ant (การผสมผสานระหว่างการเขียนโปรแกรมเชิงประกาศและการเขียนโปรแกรมเชิงคำสั่ง )
- แกง
- ไซเฟอร์
- บันทึกข้อมูล
- ภาษากำหนดคุณสมบัติแอปพลิเคชันแบบกระจาย (DASL) (ผสมผสานการเขียนโปรแกรมเชิงประกาศและการเขียนโปรแกรมเชิงคำสั่ง )
- อีซีแอล
- เกรมลิน
- แจ้งข้อมูล (ผสมผสานการเขียนโปรแกรมเชิงประกาศและการเขียนโปรแกรมเชิงคำสั่ง )
- แวววาว
- ปรอท
- เมตาฟอนต์
- เมตาโพสต์
- โมเดลิกา
- ห้าม
- บทนำ
- คิวเอ็มแอล
- ออนซ์
- อาร์ดีคิวแอล
- ลำดับ L
- สปาร์คิวแอล
- SQL (เฉพาะ DQL ไม่รวม DDL, DCL และ DML)
- ซูเฟล่
- VHDL (รองรับการเขียนโปรแกรมแบบประกาศการเขียนโปรแกรมแบบคำสั่งและการเขียนโปรแกรมเชิงฟังก์ชัน )
- Wolfram Mathematica ( ภาษา Wolfram )
- WOQL ( TerminusDB )
- xBase
- การแปลง XSL
ภาษาที่สามารถฝังได้
ในซอร์สโค้ด
ภาษาที่สามารถฝังโค้ดต้นฉบับได้ จะฝังโค้ดขนาดเล็กที่สามารถทำงานได้ลงในข้อความแบบอิสระ ซึ่งมักจะเป็นหน้าเว็บ
ภาษาฝังตัวฝั่งไคลเอ็นต์มีข้อจำกัดตามความสามารถของเบราว์เซอร์หรือไคลเอ็นต์ที่ต้องการใช้งาน จุดมุ่งหมายคือการเพิ่มความยืดหยุ่นให้กับหน้าเว็บโดยไม่ต้องติดต่อกับเซิร์ฟเวอร์อีก
ภาษาโปรแกรมแบบฝังตัวฝั่งเซิร์ฟเวอร์มีความยืดหยุ่นมากกว่ามาก เนื่องจากแทบทุกภาษาสามารถนำมาฝังไว้ในเซิร์ฟเวอร์ได้ จุดประสงค์ของการฝังส่วนของโค้ดฝั่งเซิร์ฟเวอร์ลงในเว็บเพจก็คือการสร้างมาร์กอัปเพิ่มเติมแบบไดนามิก โค้ดนั้นจะหายไปเมื่อหน้าเว็บถูกแสดงผล และจะถูกแทนที่ด้วยผลลัพธ์ที่ได้
ฝั่งเซิร์ฟเวอร์
- พีพี
- วีบีสคริปต์
- Tcl – ฝั่งเซิร์ฟเวอร์ในNaviServerและเป็นส่วนประกอบสำคัญในระบบอุตสาหกรรมอิเล็กทรอนิกส์
ตัวอย่างข้างต้นนั้นมุ่งเน้นไปที่จุดประสงค์นี้โดยเฉพาะ ภาษาโปรแกรมอื่นๆ อีกมากมาย เช่นErlang , Scala , PerlและRubyก็สามารถดัดแปลงได้เช่นกัน (ตัวอย่างเช่น โดยการสร้างเป็น โมดูล ของ Apache )
ฝั่งไคลเอ็นต์
- แอ็กชันสคริปต์
- JavaScript (หรือที่รู้จักกันในชื่อ ECMAScript หรือ JScript)
- VBScript (สำหรับ Windows เท่านั้น)
ในโค้ดวัตถุ
ภาษาโปรแกรมแบบไดนามิกหรือภาษาสคริปต์หลากหลายชนิดสามารถฝังลงในโค้ดที่คอมไพล์แล้วได้ โดยพื้นฐานแล้ว โค้ดออบเจ็กต์สำหรับตัวแปล ภาษา จะต้องถูกเชื่อมโยงเข้ากับไฟล์ปฏิบัติการ จากนั้นส่วนของโค้ดต้นฉบับสำหรับภาษาที่ฝังอยู่สามารถส่งไปยังฟังก์ชันประเมินผลในรูปแบบของสตริงได้ ภาษาควบคุมแอปพลิเคชันสามารถนำไปใช้ได้ด้วยวิธีนี้ หากผู้ใช้ป้อนโค้ดต้นฉบับ ภาษาที่มีตัวแปลภาษาขนาดเล็กจะได้รับความนิยมมากกว่า
ภาษาการเขียนโปรแกรมเพื่อการศึกษา
ภาษาโปรแกรมถูกพัฒนาขึ้นมาโดยมีวัตถุประสงค์หลักเพื่อการสอนและการเรียนรู้การเขียนโปรแกรม
ภาษาลึกลับ
ภาษาโปรแกรมเชิงลึกลับคือภาษาโปรแกรมที่ออกแบบมาเพื่อทดสอบขีดจำกัดของการออกแบบภาษาโปรแกรมคอมพิวเตอร์ เพื่อเป็นการพิสูจน์แนวคิด หรือเพื่อเป็นเรื่องตลก
ภาษาเพิ่มเติม
ภาษาโปรแกรมส่วนขยายคือภาษาที่ฝังอยู่ในโปรแกรมอื่น และใช้เพื่อควบคุมคุณสมบัติของโปรแกรมนั้นในสคริปต์ส่วนขยาย
- AutoLISP (เฉพาะสำหรับAutoCAD )
- บีนเชลล์
- แคล
- ซี/อัล (ซี/ไซด์)
- กิล
- อีแมคส์ ลิสป์
- JavaScriptและภาษาถิ่นบางภาษา เช่นJScript
- ภาษา Lua (ฝังอยู่ในเกมหลายเกม)
- OpenCL (ส่วนขยายของภาษา C และ C++ เพื่อใช้งาน GPU และส่วนขยายการประมวลผลแบบขนานของ CPU)
- OptimJ (ส่วนขยายของ Java ที่รองรับการเขียนโปรแกรมโมเดลการเพิ่มประสิทธิภาพ และการสร้างนามธรรมที่มีประสิทธิภาพสำหรับการประมวลผลข้อมูลจำนวนมาก)
- เพิร์ล
- หอก
- พาวเวอร์เชลล์
- Python (ฝังอยู่ใน Maya, Blender และโปรแกรมสร้างแอนิเมชั่น 3 มิติอื่นๆ)
- เร็กซ์
- รูบี้ (Google SketchUp)
- เอส-ลัง
- คำสั่ง SQL
- กระรอก
- ทีซีแอล
- สคริปต์ Vim (vim)
- Visual Basic for Applications (VBA)
ภาษาเจเนอเรชั่นที่สี่
ภาษาโปรแกรมรุ่นที่สี่เป็นภาษาโปรแกรมระดับสูงที่สร้างขึ้นโดยใช้ ระบบ ฐานข้อมูล เป็น หลัก โดยทั่วไปแล้วจะใช้ในสภาพแวดล้อมเชิงพาณิชย์
- 1C: ภาษาโปรแกรมระดับองค์กร
- เอบีเอพี
- คอร์วิชั่น
- GraphTalk ของCSC
- CA-IDEAL (Interactive Development Environment for an Application Life) สำหรับใช้งานร่วมกับ CA- DATACOM/DB
- โปรแกรมสร้างรายงานEasytrieve (ปัจจุบันคือ CA-Easytrieve Plus)
- จุดสนใจ
- IBM Informix-4GL
- LINC 4GL
- LiveCode (ไม่ได้ใช้ฐานข้อมูล แต่เป้าหมายคือการทำงานในระดับนามธรรมที่สูงกว่าภาษาโปรแกรม 3 มิติ)
- MAPPER ( Unisys/Sperry ) (ปัจจุบันเป็นส่วนหนึ่งของ BIS)
- MARK-IV ( Sterling/Informatics ) ปัจจุบันคือ VISION:BUILDER แห่งแคลิฟอร์เนีย
- เป็นธรรมชาติ
- โปรเกรส 4GL
- พีวี-เวฟ
- เรียกคืน
- เอสเอเอส
- คำสั่ง SQL
- อูเบอร์โค้ด (VHLL หรือภาษาโปรแกรมระดับสูงมาก)
- ยูนิเฟซ
- วิชวล ดาต้าเฟล็กซ์
- วิชวล ฟ็อกซ์โปร
- xBase
ภาษาเชิงฟังก์ชัน
ภาษา โปรแกรมเชิงฟังก์ชันกำหนดโปรแกรมและซับรูทีนเป็นฟังก์ชันทางคณิตศาสตร์และถือว่าพวกมันเป็นฟังก์ชันระดับแรก ภาษาที่เรียกกันว่าภาษาเชิงฟังก์ชันหลายภาษานั้น "ไม่บริสุทธิ์" เนื่องจากมีคุณสมบัติเชิงคำสั่งอยู่ด้วย ภาษาเชิงฟังก์ชันหลายภาษาเชื่อมโยงกับเครื่องมือคำนวณทางคณิตศาสตร์ ภาษาเชิงฟังก์ชันได้แก่:
บริสุทธิ์
ไม่บริสุทธิ์
- เอพีแอล
- เอทีเอส
- แคล
- C++ (ตั้งแต่C++11 เป็นต้นไป )
- ซี#
- วีบี.เน็ต
- ศรีลังกา
- เคิร์ล
- ดี
- โผ
- อีซีเอ็มเอสคริปต์
- เออร์ลัง
- เฟ็กซ์ล
- ฟลิกซ์
- G (ใช้ใน LabVIEW)
- กรูวี่
- กระโดด
- Java (ตั้งแต่เวอร์ชัน 8)
- จูเลีย
- โคทลิน
- ลิสป์
- เอ็มแอล
- มาตรฐาน ML (SML)
- โอแคมล์
- เอฟ#
- เนเมอร์เล
- นิม
- โอปอล
- โอพีเอส5
- เพิร์ล
- พีพี
- พีแอล/พีจีเอสเค
- ไพธอน
- Q (ภาษาการเขียนโปรแกรมเชิงสมการ)
- อาร์
- เรโบล
- สีแดง
- ทับทิม
- การปฏิเสธ
- สนิม
- สกาล่า
- สวิฟต์
- สเปรดชีต
- วี (วลัง)
- ทีซีแอล
- Wolfram Mathematica ( ภาษา Wolfram )
ภาษาอธิบายฮาร์ดแวร์
ในด้านอิเล็กทรอนิกส์ภาษาอธิบายฮาร์ดแวร์ (HDL) เป็นภาษาคอมพิวเตอร์เฉพาะทางที่ใช้ในการอธิบายโครงสร้าง การออกแบบ และการทำงานของวงจรอิเล็กทรอนิกส์ โดยเฉพาะอย่างยิ่งวงจรตรรกะดิจิทัล ภาษา HDL ที่ใช้กันอย่างแพร่หลายและได้รับการสนับสนุนอย่างดีในอุตสาหกรรมมีสองประเภท ได้แก่VerilogและVHDLภาษาอธิบายฮาร์ดแวร์ประกอบด้วย:
HDL สำหรับการออกแบบวงจรอนาล็อก
- Verilog-AMS (Verilog สำหรับวงจรอนาล็อกและวงจรผสม)
- VHDL-AMS (VHDL พร้อมส่วนขยายด้านอนาล็อก/สัญญาณผสม)
HDL สำหรับการออกแบบวงจรดิจิทัล
ภาษาเชิงบังคับ
ภาษาโปรแกรมเชิงคำสั่งอาจเป็นภาษาที่มีหลายรูปแบบและอาจปรากฏอยู่ในหมวดหมู่อื่นๆ ต่อไปนี้คือรายชื่อภาษาโปรแกรมที่ใช้รูปแบบคำสั่ง :
- อาดา
- อัลโกล 58
- ALGOL 60 (ภาษาโปรแกรมที่มีอิทธิพลอย่างมากในการออกแบบ)
- อัลโกล 68
- ภาษาแอสเซมบลี
- พื้นฐาน
- ซี
- ซี++
- ซี#
- ศรีลังกา
- เย็น
- โคบอล
- ดี
- โผ
- อีซีเอ็มเอสคริปต์
- ฟอร์แทรน
- เกาส์
- ไป
- กรูวี่
- ไอคอน
- ชวา
- จูเลีย
- ลัว
- MATLAB
- ภาษาเครื่อง
- โมดูลา-2 , โมดูลา-3
- คางทูม
- นิม
- โอแคมล์
- โอเบรอน
- ออบเจ็กต์ปาสคาล
- Open Object Rexx (ooRexx)
- ภาษาการเขียนโปรแกรมแบบเปิด (OPL)
- OpenEdge Advanced Business Language (ABL)
- ปาสคาล
- เพิร์ล
- พีพี
- พีแอล/ไอ
- พีแอล/เอส
- พาวเวอร์เชลล์
- ร้อยแก้ว
- ไพธอน
- ราคุ
- เร็กซ์
- ทับทิม
- สนิม
- เซ็ตล์
- สปีคอีซี่
- สวิฟต์
- ทีซีแอล
- วี (วลัง)
- Wolfram Mathematica ( ภาษา Wolfram )
ภาษาโหมดโต้ตอบ
ภาษาโปรแกรมแบบโต้ตอบ (Interactive mode languages) หรือที่รู้จักกันในชื่อREPLทำหน้าที่เสมือนเชลล์: สามารถป้อนนิพจน์หรือคำสั่งทีละรายการ และจะเห็นผลลัพธ์ของการประเมินได้ทันที
- เอพีแอล
- พื้นฐาน (บางสำเนียง)
- โคลจูร์
- ลิสปาร์กทั่วไป
- Dart (พร้อมเครื่องมือสำหรับนักพัฒนาของ Observatory หรือ Dartium)
- อีซีเอ็มเอสคริปต์
- เออร์ลัง
- Elixir (พร้อม iex)
- เอฟ#
- ฟริล
- เกาส์
- กรูวี่
- กิล
- แฮสเคลล์ (โดยใช้ตัวแปลภาษา GHCi หรือ Hugs)
- ไอดีแอล
- เจ
- Java (ตั้งแต่เวอร์ชัน 9)
- จูเลีย
- ลัว
- MUMPS (ภาษามาตรฐานอเนกประสงค์ของ ANSI)
- เมเปิล
- MATLAB
- เอ็มแอล
- นิม (พร้อมอินิม)
- โอแคมล์
- เพิร์ล
- พีพี
- หอก
- โพสต์สคริปต์
- PowerShell ( เครื่องมือ CLI ที่ใช้ .NET )
- บทนำ
- ไพธอน
- ร้อยแก้ว
- อาร์
- ราคุ
- เรโบล
- สีแดง
- เร็กซ์
- รูบี้ (พร้อมIRB )
- สกาล่า
- โครงการ
- Smalltalk (ทุกที่ในสภาพแวดล้อม Smalltalk)
- S-Lang (พร้อมด้วยเชลล์ S-Lang, slsh)
- สปีคอีซี่
- สวิฟต์
- Tcl (พร้อมด้วยเชลล์ Tcl, tclsh)
- เชลล์ยูนิกซ์
- วิชวล ฟ็อกซ์โปร
- Wolfram Mathematica ( ภาษา Wolfram )
ภาษาที่แปลแล้ว
ภาษาโปรแกรมแบบใช้ตัวแปลภาษา คือภาษาโปรแกรมที่โปรแกรมสามารถถูกประมวลผลจากโค้ดต้นฉบับได้ โดยผ่านทางตัวแปลภาษา ในทางทฤษฎีแล้ว ภาษาใดๆ ก็สามารถถูกคอมไพล์หรือถูกแปลภาษาได้ ดังนั้นคำว่าภาษาโปรแกรมแบบใช้ตัวแปลภาษา โดยทั่วไปจึงหมายถึงภาษาที่มักถูกแปลภาษามากกว่าถูกคอมไพล์
- มด
- เอพีแอล
- ภาษาสคริปต์AutoHotkey
- ภาษาสคริปต์AutoIt
- พื้นฐาน (บางสำเนียง)
- ภาษาโปรแกรมสำหรับธุรกิจ (PL/B เดิมชื่อ DATABUS เวอร์ชันต่อมาเพิ่มตัวเลือกการคอมไพล์)
- ไอเฟล (ผ่านเทคโนโลยีละลายน้ำแข็งในEiffelStudio )
- อีแมคส์ ลิสป์
- โฟกัส
- ภาษา GameMaker
- กรูวี่
- เจ
- เจคิว
- Javaผ่านไบต์โค้ด JVM
- จูเลีย (โดยค่าเริ่มต้นจะคอมไพล์เป็นรหัสเครื่องแบบเรียลไทม์นอกจากนี้ยังมีโหมดการตีความให้เลือกใช้)
- สคริปต์
- ภาษาลิสป์ (เวอร์ชันแรกๆ ก่อนปี 1962 และเวอร์ชันทดลองบางเวอร์ชัน ระบบลิสป์ที่ใช้งานจริงส่วนใหญ่เป็นคอมไพเลอร์ แต่หลายระบบก็ยังคงมีตัวแปลภาษาให้ใช้งานหากจำเป็น)
- แอลพีซี
- ลัว
- MUMPS (ภาษามาตรฐานอเนกประสงค์ของ ANSI)
- เมเปิล
- MATLAB
- โอแคมล์
- ภาษาปาสคาล (การใช้งานในยุคแรก)
- พีซีคาสเซิล
- เพิร์ล
- พีพี
- โพสต์สคริปต์
- พาวเวอร์เชลล์
- ร้อยแก้ว
- ไพธอน
- เร็กซ์
- อาร์
- ราคุ
- เรโบล
- สีแดง
- ทับทิม
- เอส-ลัง
- เมล็ดพันธุ์ 7
- สปีคอีซี่
- มาตรฐาน ML (SML)
- สปิน
- ทีซีแอล
- ชา
- ทอร์คสคริปต์
- วีบีสคริปต์
- Windows PowerShell – อินเทอร์ เฟซบรรทัดคำสั่ง (CLI) ที่ใช้.NET
- ภาษาสคริปต์บางส่วน – ดังต่อไปนี้
- Wolfram Mathematica ( ภาษา Wolfram )
ภาษาแบบวนซ้ำ
ภาษาโปรแกรมแบบวนซ้ำถูกสร้างขึ้นโดยใช้หรือมี ตัวสร้าง (generator ) เป็นส่วนประกอบหลัก
ภาษาตามประเภทการจัดการหน่วยความจำ
ภาษาที่รวบรวมขยะ
การจัดการหน่วยความจำอัตโนมัติ (Garbage Collection หรือ GC) เป็นรูปแบบหนึ่งของการจัดการหน่วยความจำแบบอัตโนมัติ ตัวเก็บขยะจะพยายามเรียกคืนหน่วยความจำที่โปรแกรมจัดสรรไว้แต่ไม่ได้ใช้งานอีกต่อไป
- เอพีแอล
- Cผ่านทางผู้เก็บขยะที่ไม่เป็นทางการ เช่นโบห์ม
- C++ (รองรับในไลบรารีมาตรฐานตั้งแต่C++11จนถึงC++23 ) [ 15 ] [ 16 ]
- ซี#
- ทำความสะอาด
- คริสตัล
- โผ
- อีซีเอ็มเอสคริปต์
- มรกต
- เออร์ลัง
- ไป
- กรูวี่
- ฮัสเคลล์
- ชวา
- จูเลีย
- โคทลิน
- แล็บวิว
- ลิสป์ (ผู้ริเริ่ม)
- ลัว
- เอ็มแอล
- มาตรฐาน ML (SML)
- โอแคมล์
- โมดูลา-3
- เพิร์ล
- พีพี
- พาวเวอร์เชลล์
- ไพธอน
- ทับทิม
- การสนทนาเล็กๆ น้อยๆ
- สปีคอีซี่
ภาษาที่มีการจัดการหน่วยความจำด้วยตนเอง
- อัลโกล 68
- การประกอบ (ต่างๆ)
- บลิส
- ซี
- ซี++
- C#ใน
unsafeบริบทต่างๆ - คอมโพเนนต์ปาสคาล
- ไปข้างหน้า
- ฟอร์ทราน
- ฟรีเบสิก
- Java ผ่าน คลาสsun.misc.Unsafeภายใน
- โมดูลา-2
- โอเบรอน
- ปาสคาล
- พีแอล/ไอ
- Rustใน
unsafeบริบทต่างๆ - ซิก
ภาษาที่มีตัวเลือกการจัดการหน่วยความจำด้วยตนเอง
- เอดา[ก]
- บลิทซ์ เบสิก[ 18 ] [ 19 ] [ 20 ]
- Cผ่านทางผู้เก็บขยะที่ไม่เป็นทางการ เช่น โบห์ม
- C++ (ตั้งแต่ C++11 จนถึง C++23 ผ่านการสนับสนุนการเก็บขยะแบบเลือกได้) [ 15 ] [ 21 ]
- COBOL [ 22 ] [ 23 ] [ 24 ]
- D [ 25 ]
- นิม[ 26 ]
- ออบเจกทีฟซี[ 27 ]
- ออบเจ็กต์ซี++
- โพสต์สคริปต์[ b ]
- V [ 29 ]
- วาลา[ 30 ]
ภาษาโปรแกรมบางภาษาที่ไม่มีความสามารถในการจัดการหน่วยความจำด้วยตนเอง เช่นCython [ 31 ] Swift [ c ] และScala [ 32 ] (เฉพาะScala Nativeเท่านั้น)สามารถนำเข้าหรือเรียกใช้ฟังก์ชันเช่นและจากCผ่านอินเทอร์เฟซฟังก์ชันภายนอกได้ mallocfree
ภาษาที่มีการจัดการหน่วยความจำแบบกำหนดได้แน่นอน
ภาษาที่มีระบบนับอ้างอิงอัตโนมัติ (ARC)
ภาษาที่ใช้รายการเป็นฐาน – LISP
ภาษาที่ใช้โครงสร้างข้อมูลแบบลิสต์เป็น ภาษาที่มีโครงสร้างข้อมูลประเภทหนึ่งซึ่งอิงตามโครงสร้างข้อมูล แบบลิสต์
ภาษาเล็กๆ
ภาษาขนาดเล็ก[ 35 ]ให้บริการโดเมนปัญหาเฉพาะทาง
- awk – ใช้สำหรับจัดการไฟล์ข้อความ
- sed – วิเคราะห์และแปลงข้อความ
- SQL – มีคำหลักเพียงไม่กี่คำและไม่มีโครงสร้างที่จำเป็นทั้งหมดสำหรับภาษาโปรแกรมแบบเต็มรูปแบบ[ d ] – ระบบจัดการฐานข้อมูลหลายระบบขยาย SQL ด้วยโครงสร้างเพิ่มเติมในฐานะภาษาสำหรับขั้นตอนการจัดเก็บ
- XPL - ภาษาที่ออกแบบมาเพื่อใช้ในการเขียนคอมไพเลอร์ แต่ไม่ได้จำกัดอยู่เฉพาะการใช้งานนี้เท่านั้น
ภาษาเชิงตรรกะ
ภาษา ที่ใช้ตรรกะเป็นพื้นฐานจะระบุชุดคุณลักษณะที่คำตอบต้องมี แทนที่จะระบุชุดขั้นตอนในการหาคำตอบ
ภาษาโปรแกรมที่โดดเด่นซึ่งใช้ รูปแบบการเขียนโปรแกรมนี้ได้แก่:
- อัลฟ์
- อัลมา-0
- แกง
- บันทึกข้อมูล
- ฟริล
- Flix (ภาษาการเขียนโปรแกรมเชิงฟังก์ชันที่มีข้อจำกัด Datalog ระดับสูง)
- ยานัส
- λProlog (ภาษาการเขียนโปรแกรมเชิงตรรกะที่มีคุณสมบัติการกำหนดประเภทแบบพหุรูป การเขียนโปรแกรมแบบโมดูลาร์ และการเขียนโปรแกรมลำดับสูง)
- Ozและระบบการเขียนโปรแกรมโมซาร์ทแบบข้ามแพลตฟอร์ม Oz
- Prolog (กำหนดรูปแบบข้อมูลและกลไกการประเมินโปรแกรมในรูปแบบของตรรกะทางคณิตศาสตร์พิเศษที่เรียกว่าตรรกะฮอร์นและกลไกการพิสูจน์ทั่วไปที่เรียกว่าการแก้ปัญหาเชิงตรรกะ )
- ดาวพุธ (อ้างอิงจาก Prolog)
- Visual Prolog (ส่วนขยาย Prolog ที่เน้นการเขียนโปรแกรมเชิงวัตถุ)
- ซูเฟล่
ภาษาเครื่อง
ภาษาเครื่องสามารถประมวลผลได้โดยตรงโดย CPU ของคอมพิวเตอร์ โดยทั่วไปแล้วจะถูกกำหนดในรูปแบบของรูปแบบบิต ซึ่งมักจะแสดงในรูปเลขฐานแปดหรือเลขฐานสิบหกรูปแบบบิตแต่ละแบบจะทำให้วงจรใน CPU ประมวลผลการทำงานพื้นฐานอย่างใดอย่างหนึ่งของฮาร์ดแวร์ การเปิดใช้งานอินพุตทางไฟฟ้าเฉพาะ (เช่น ขาแพ็คเกจ CPU สำหรับไมโครโปรเซสเซอร์) และการตั้งค่าเชิงตรรกะสำหรับค่าสถานะของ CPU จะควบคุมการคำนวณของโปรเซสเซอร์ ภาษาเครื่องแต่ละภาษามีความเฉพาะเจาะจงสำหรับตระกูลของโปรเซสเซอร์ ภาษาเครื่องสำหรับตระกูลโปรเซสเซอร์หนึ่งไม่สามารถทำงานโดยตรงบนโปรเซสเซอร์ในอีกตระกูลหนึ่งได้ เว้นแต่โปรเซสเซอร์เหล่านั้นจะมีฮาร์ดแวร์เพิ่มเติมเพื่อรองรับ (ตัวอย่างเช่น โปรเซสเซอร์ DEC VAX มีโหมดความเข้ากันได้กับ PDP-11) ภาษาเครื่อง (โดยพื้นฐานแล้ว) จะถูกกำหนดโดยผู้พัฒนา CPU ไม่ใช่โดยบุคคลที่สาม[ e ] เวอร์ชันเชิงสัญลักษณ์ ภาษาแอสเซมบลีของโปรเซสเซอร์ ก็ถูกกำหนดโดยผู้พัฒนาในกรณีส่วนใหญ่เช่นกัน ชุดคำสั่งภาษาเครื่องที่ใช้กันทั่วไปบาง ชุด ได้แก่:
- แขน
- บริษัท เบอร์โรห์ส คอร์ปอเรชั่น
- ชุดคำสั่ง Burroughs B5000
- ชุดคำสั่ง Burroughs B6x00-7x00
- ธ.ค. :
- ฮิวเลตต์-แพคการ์ด
- IBM [ f ]
- อินเทล 8008 , 8080และ8085
- อินเทล x86 :
- โปรเซสเซอร์ x86 แบบ 16 บิตซึ่งใช้ครั้งแรกใน Intel 8086
- หน่วยประมวลผล Intel 8086และ8088 (โดย 8088 ถูกใช้ใน คอมพิวเตอร์ IBM PCรุ่นแรกๆ)
- อินเทล 80186
- Intel 80286 (โปรเซสเซอร์ x86 ตัวแรกที่มีโหมดป้องกันใช้ในIBM PC AT )
- IA-32เปิดตัวในรุ่น80386
- x86-64 – ข้อกำหนดดั้งเดิมถูกสร้างขึ้นโดยAMDมีรุ่นที่แตกต่างกันไปตามผู้ผลิต แต่โดยพื้นฐานแล้วก็เหมือนกัน:
- โปรเซสเซอร์ x86 แบบ 16 บิตซึ่งใช้ครั้งแรกใน Intel 8086
- MCST Elbrus 2000
- เอ็มไอพีเอส
- เทคโนโลยี MOS 65xx ( 8 บิต )
- 6502 (ซีพียูสำหรับNES , VIC-20 , BBC Micro , Apple IIและคอมพิวเตอร์ Atari 8 บิต )
- 6510 (ซีพียูสำหรับคอมโมดอร์ 64 )
- ศูนย์ออกแบบตะวันตก65816/65802 (ซีพียูสำหรับApple IIGSและ (รุ่นดัดแปลง) Super Nintendo Entertainment System )
- Motorola 6800 ( 8 บิต )
- ซีพียูตระกูล Motorola 68000 (ซีพียูที่ใช้ใน คอมพิวเตอร์ Macintosh รุ่นแรกๆ และ คอมพิวเตอร์ Sun รุ่นแรกๆ )
- เนชั่นแนล เซมิคอนดักเตอร์NS320xx
- POWERซึ่งถูกนำมาใช้ครั้งแรกในIBM RS/6000
- PowerPC – ใช้ในPower Macintoshและในเครื่องเล่นเกม หลายรุ่น โดยเฉพาะอย่างยิ่งรุ่นที่เจ็ด
- Power ISA – วิวัฒนาการของPowerPC
- RISC-V
- ซัน ไมโครซิสเต็มส์ (ปัจจุบันคือ ออราเคิล ) SPARC
- UNIVAC [ f ]
ภาษามาโคร
ภาษามาโครการแทนที่ข้อความ
ภาษา มาโครจะแปลงไฟล์โค้ดต้นฉบับหนึ่งไปเป็นอีกไฟล์หนึ่ง โดยพื้นฐานแล้ว "มาโคร" คือข้อความสั้นๆ ที่ขยายออกเป็นข้อความที่ยาวขึ้น (อย่าสับสนกับมาโครแบบสุขอนามัย ) อาจมีการแทนที่พารามิเตอร์ด้วย มักใช้ในการประมวลผลโค้ดต้นฉบับล่วงหน้า โปรแกรมประมวลผลล่วงหน้ายังสามารถให้ฟังก์ชันต่างๆ เช่นการรวมไฟล์ได้ อีกด้วย
ภาษามาโครอาจถูกจำกัดให้ทำงานกับส่วนของโค้ดที่มีป้ายกำกับพิเศษ (โดยมีคำนำหน้าเป็น#ในกรณีของพรีโปรเซสเซอร์ของภาษาซี) หรืออาจไม่เป็นเช่นนั้น แต่ในกรณีนี้ การขยายมาโครที่ฝังอยู่ในสตริงลิเทอรัล ก็มักจะไม่เป็นที่พึงประสงค์ (เช่น) ดังนั้นจึงยังคงต้องการความรู้พื้นฐานเกี่ยวกับไวยากรณ์ อย่างไรก็ตาม ภาษามาโครมักยังคงสามารถนำไปใช้ได้กับมากกว่าหนึ่งภาษา แตกต่างจากภาษาที่สามารถฝังลงในซอร์สโค้ดได้ เช่นPHPซึ่งมีคุณสมบัติครบถ้วน
- ตัวประมวลผลล่วงหน้า C
- m4 (เดิมทีเป็นของ AT&T และรวมอยู่ในชุด Unix)
- ML/I (ตัวประมวลผลมาโครอเนกประสงค์)
- TTM (พัฒนาขึ้นที่สถาบันเทคโนโลยีแคลิฟอร์เนีย)
ภาษามาโครแอปพลิเคชัน
ภาษาสคริปต์เช่นTclและECMAScript ( ActionScript , ECMAScript สำหรับ XML , JavaScript , JScript ) ได้ถูกฝังอยู่ในแอปพลิเคชันต่างๆ บางครั้งภาษาเหล่านี้ถูกเรียกว่า "ภาษามาโคร" แม้ว่าจะมีความหมายแตกต่างจากมาโครแบบแทนที่ข้อความ เช่นm4อยู่บ้างก็ตาม
ภาษาเมตาโปรแกรมมิ่ง
เมตาโปรแกรมมิ่งคือการเขียนโปรแกรมที่เขียนหรือจัดการโปรแกรมอื่น ๆ รวมถึงตัวมันเอง ในฐานะข้อมูล หรือที่ทำส่วนหนึ่งของงานที่ปกติแล้วจะทำในระหว่างการทำงาน ของโปรแกรม ในระหว่างการคอมไพล์ในหลายกรณี วิธีนี้ช่วยให้นักเขียนโปรแกรมทำงานได้มากขึ้นในเวลาเท่าเดิมเมื่อเทียบกับการเขียนโค้ดทั้งหมดด้วยตนเอง
ภาษาแบบโมดูลาร์
การเขียนโปรแกรมแบบโมดูลาร์เป็นรูปแบบการเขียนโปรแกรมที่จัดระเบียบฟังก์ชันและสัญลักษณ์ต่างๆ ออกเป็นโมดูลอิสระ
- อาดา
- อัลโกล
- บลิทซ์แม็กซ์
- ภาษาซี (ผ่าน ส่วนขยาย ของ Clang )
- ภาษาซี++ (ผ่านโมดูลซี++ )
- ซี#
- โคลจูร์
- โคบอล
- ลิสปาร์กทั่วไป
- ดี
- โผ
- อีซี
- เออร์ลัง
- ยาอายุวัฒนะ
- ต้นเอล์ม
- เอฟ
- เอฟ#
- ฟอร์ทราน
- ไป
- ฮัสเคลล์
- IBM/360 แอสเซมเบลอร์
- ภาษาควบคุม (CL) ของ IBM System/38และAS/400
- IBM RPG
- ภาษาจาวา (ผ่านแพ็กเกจจาวาและโมดูลจาวา )
- JavaScript [ 38 ]
- จูเลีย
- MATLAB
- เอ็มแอล
- โมดูลา , โมดูลา-2 , โมดูลา-3
- มอร์โฟ
- นิวพี
- โอเบรอน , โอเบรอน-2
- ออบเจกทีฟซี
- โอแคมล์
- อนุพันธ์ของ ปาสคาล
- เพิร์ล
- พีพี
- พีแอล/ไอ
- เพียวเบสิก
- ไพธอน
- อาร์
- รูบี้[ 39 ]
- สนิม
- วิชวลเบสิก (.NET)
- เว็บดีเอ็นเอ
ภาษาหลายกระบวนทัศน์
ภาษาโปรแกรมแบบมัลติพาราดิกม์รองรับพาราดิกม์การเขียนโปรแกรม มากกว่าหนึ่งแบบ โดยอนุญาตให้โปรแกรมใช้ รูปแบบ การเขียนโปรแกรม ได้มากกว่าหนึ่ง แบบ เป้าหมายคือการช่วยให้นักโปรแกรมสามารถใช้เครื่องมือที่ดีที่สุดสำหรับงานนั้นๆ โดยยอมรับว่าไม่มีพาราดิกม์ใดที่แก้ปัญหาทุกอย่างได้ง่ายที่สุดหรือมีประสิทธิภาพที่สุด
- 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ที่ใช้ในงานคำนวณทางเทคนิค แต่รายชื่อนี้เน้นเฉพาะภาษาที่ใช้ในงานคำนวณทางเทคนิคเกือบทั้งหมดเท่านั้น
ภาษาที่ไม่ใช้ภาษาอังกฤษเป็นพื้นฐาน
- ภาษาจีนพื้นฐาน (ภาษาจีน)
- ฟยอลเนียร์ (ภาษาไอซ์แลนด์)
- ภาษาสัญลักษณ์ d'Enseignement (ฝรั่งเศส)
- ราพิรา (รัสเซีย)
- เอซิล (ทมิฬ)
ภาษาเชิงวัตถุแบบคลาส
ภาษา โปรแกรมเชิงวัตถุแบบคลาสรองรับวัตถุที่กำหนดโดยคลาสของมัน คำจำกัดความของคลาสประกอบด้วยข้อมูลสมาชิกการส่งข้อความถือเป็นแนวคิดสำคัญ หากไม่ใช่แนวคิดหลัก ในภาษาโปรแกรมเชิงวัตถุ
ฟังก์ชันแบบโพลีมอร์ฟิกที่กำหนดพารามิเตอร์ด้วยคลาสของอาร์กิวเมนต์บางส่วน มักเรียกว่าเมธอดในภาษาที่มีการเรียกใช้แบบซิงเกิลดิสทริกต์ คลาสโดยทั่วไปจะรวมถึงคำจำกัดความของเมธอดด้วย ในภาษาที่มีการเรียกใช้แบบมัลติดิสทริกต์เมธอดจะถูกกำหนดโดยฟังก์ชันเจเนริกมีข้อยกเว้นที่ เมธอด แบบซิงเกิลดิสทริกต์เป็นฟังก์ชันเจเนริก (เช่นระบบออบเจ็กต์ของ Bigloo )
การจัดส่งครั้งเดียว
- แอ็กชันสคริปต์ 3.0
- นักแสดงชาย
- Ada 95และAda 2005 (ภาษาอเนกประสงค์)
- เอพีแอล
- เบต้า
- ซี++
- ซี#
- ศรีลังกา
- โผ
- ออกซิไจน์ (เดิมชื่อ โครม)
- ชัค
- งูเห่า
- โคลด์ฟิวชั่น
- เคิร์ล
- ดี
- ภาษากำหนดคุณสมบัติแอปพลิเคชันแบบกระจาย (DASL)
- เดลฟี ออบเจ็กต์ ปาสคาล
- อี
- จีนู อี
- หอไอเฟล
- ฟอร์ทราน 2003
- ป้อม
- กัมบาส
- ภาษาผู้สร้างเกม
- ท่าเรือ
- เจ
- ชวา
- แล็บวิว
- ลัว
- Modula-2 (การแยกส่วนข้อมูล การซ่อนข้อมูล การกำหนดประเภทข้อมูลที่เข้มงวด ความเป็นโมดูลอย่างสมบูรณ์)
- Modula-3 (เพิ่มคุณสมบัติเชิงวัตถุมากขึ้นจาก Modula-2)
- เนเมอร์เล
- เน็ตเร็กซ์
- Oberon-2 (ความเทียบเท่าเชิงวัตถุอย่างสมบูรณ์ในรูปแบบดั้งเดิมที่มีการกำหนดประเภทอย่างเข้มงวดตามแบบ Wirthian)
- ออบเจ็กต์ปาสคาล
- วัตถุ REXX
- Objective-C (ส่วนขยายของภาษา C ที่เพิ่มโมเดลเชิงวัตถุและไวยากรณ์การส่งข้อความซึ่งได้มาจากSmalltalk )
- โอแคมล์
- OpenEdge Advanced Business Language (ABL)
- Oz, ระบบการเขียนโปรแกรมโมสาร์ท
- เพิร์ล 5
- พีพี
- หอก
- โปรกราฟ
- Python (ภาษาโปรแกรมเชิงตีความ และอาจเป็นภาษาโปรแกรมเชิงวัตถุได้)
- การปฏิวัติ (โปรแกรมเมอร์ไม่มีสิทธิ์เลือกวัตถุ)
- ทับทิม
- สกาล่า
- สปีคอีซี่
- Simula (ภาษาเชิงวัตถุภาษาแรก พัฒนาโดยOle-Johan DahlและKristen Nygaard )
- Smalltalk (ภาษาโปรแกรมเชิงวัตถุล้วนๆ พัฒนาขึ้นที่Xerox PARC )
- สปิน
- ซูเปอร์คอลไลเดอร์
- VBScript (ภาษาสำหรับการเขียนสคริปต์มาโครของ Microsoft Office)
- วิชวล ดาต้าเฟล็กซ์
- วิชวล ฟ็อกซ์โปร
- บทนำภาพ
- X++
- โซโจ
- XOTcl
ภาษาเชิงวัตถุแบบต้นแบบ
ภาษาโปรแกรมแบบใช้ต้นแบบ (Prototype-based languages)คือภาษาโปรแกรมเชิงวัตถุที่ขจัดความแตกต่างระหว่างคลาสและอินสแตนซ์ออกไป:
- 1C: ภาษาโปรแกรมระดับองค์กร
- ภาษาแบบขนานตามผู้แสดง (ABCL, ABCL/1, ABCL/R, ABCL/R2, ABCL/c+)
- อะโกรา
- เซซิล
- อีซีเอ็มเอสคริปต์
- แอ็กชันสคริปต์
- อีซีเอ็มเอสคริปต์สำหรับอีเอ็มแอลอี
- JavaScript (เดิมชื่อ Mocha จากนั้นเปลี่ยนเป็น LiveScript)
- เจสคริปต์
- อีทอยส์ในเสียงบีบ
- ไอโอ
- ลัว
- มู
- นิวตันสคริปต์
- เฉียง
- อาร์
- เรโบล
- สีแดง
- Self (ภาษาแรกที่ใช้ต้นแบบเป็นพื้นฐาน พัฒนามาจากSmalltalk )
- แทดส์
ภาษาของกฎล้ำหน้า
ภาษา โปรแกรมที่ใช้กฎนอกด้านจะระบุบล็อกของโค้ดด้วยการ เยื้อง
ภาษาเชิงกระบวนการ
ภาษา โปรแกรมเชิงขั้นตอนมีพื้นฐานมาจากแนวคิดของหน่วยและขอบเขต (ช่วงการมองเห็นข้อมูล) ของคำสั่งโค้ดที่สามารถทำงานได้ โปรแกรมเชิงขั้นตอนประกอบด้วยหน่วยหรือโมดูลตั้งแต่หนึ่งหน่วยขึ้นไป ซึ่งอาจเขียนโดยผู้ใช้หรือมีให้ในไลบรารีโค้ด แต่ละโมดูลประกอบด้วยขั้นตอนตั้งแต่หนึ่งขั้นตอนขึ้นไป ซึ่งอาจเรียกว่าฟังก์ชัน รูทีน ซับรูทีน หรือเมธอด ขึ้นอยู่กับภาษา ตัวอย่างของภาษาโปรแกรมเชิงขั้นตอน ได้แก่:
- ภาษา อาดา (ภาษาอเนกประสงค์)
- อัลโกล 58
- ALGOL 60 (ภาษาโปรแกรมที่มีอิทธิพลอย่างมากในการออกแบบ)
- ภาษาคล้ายเครื่องจักรขนาดเล็ก ALGOL
- อัลโกล 68
- อัลมา-0
- BASIC (โดยเฉพาะอย่างยิ่งเวอร์ชันก่อนปี 1990 ขาดความยืดหยุ่นในการปรับแต่ง)
- บีซีพีแอล
- บลิส
- ซี
- ซี++
- C# (คล้ายกับ Java/C++)
- ศรีลังกา
- เย็น
- ChucK (ไวยากรณ์คล้าย C/Java พร้อมองค์ประกอบไวยากรณ์ใหม่สำหรับการจัดการเวลาและการประมวลผลแบบขนาน)
- โคบอล
- งูเห่า
- โคลด์ฟิวชั่น
- CPL (ภาษาการเขียนโปรแกรมแบบผสมผสาน)
- เคิร์ล
- ดี
- ภาษากำหนดคุณสมบัติแอปพลิเคชันแบบกระจาย (DASL) (ผสมผสานการเขียนโปรแกรมเชิงประกาศและการเขียนโปรแกรมเชิงคำสั่ง )
- อีซีเอ็มเอสคริปต์
- แอ็กชันสคริปต์
- อีซีเอ็มเอสคริปต์สำหรับอีเอ็มแอลอี
- JavaScript (เดิมชื่อ Mocha จากนั้นเปลี่ยนเป็น LiveScript)
- เจสคริปต์
- แหล่งที่มา
- หอไอเฟล
- ไปข้างหน้า
- ฟอร์แทรน (มีความยืดหยุ่นในการใช้งานมากขึ้นในมาตรฐานรุ่นหลังๆ)
- เกาส์
- ไป
- ท่าเรือ
- ไฮเปอร์ทอล์ค
- ชวา
- ร่าเริง
- จูเลีย
- ภาษา H
- บ่วงบาศ
- โมดูลา-2 (พื้นฐานมาจากโมดูล)
- MATLAB
- เมซา
- MUMPS (เวอร์ชันแรกมีความเป็นโมดูลาร์มากกว่าภาษาโปรแกรมอื่นๆ ในยุคนั้น และมาตรฐานนี้ก็มีความเป็นโมดูลาร์มากยิ่งขึ้นนับตั้งแต่นั้นมา)
- เนเมอร์เล
- นิม
- โอเบรอน , โอเบรอน-2 (รุ่นปรับปรุง, ขนาดเล็กกว่า, เร็วขึ้น, และปลอดภัยกว่า รุ่นต่อยอดจากโมดูลา-2)
- โอแคมล์
- อ็อกแคม
- โอเรียล
- ภาษา Pascal (รุ่นต่อจาก ALGOL 60 และรุ่นก่อนหน้า Modula-2)
- ฟรีปาสคาล (FPC)
- ออบเจ็กต์ปาสคาล , เดลฟี
- พีซีคาสเซิล
- เพิร์ล
- หอก
- พีแอล/ซี
- PL/I (ภาษาโปรแกรมขนาดใหญ่สำหรับใช้งานทั่วไป เดิมทีใช้สำหรับเมนเฟรมของ IBM)
- นอกจากนี้
- พาวเวอร์เชลล์
- ร้อยแก้ว
- ไพธอน
- อาร์
- ราคุ
- ราพิร่า
- เกมอาร์เค
- สนิม
- เอส-ลัง
- วีบีสคริปต์
- วิชวลเบส
- วิชวล ฟ็อกซ์โปร
- Wolfram Mathematica ( ภาษา Wolfram )
- ไมโครซอฟต์ไดนามิกส์ AX (X++)
ภาษาการสอบถาม
ภาษาสะท้อนคิด
ภาษา โปรแกรมแบบสะท้อน (Reflection programming languages) ช่วยให้โปรแกรมสามารถตรวจสอบและอาจแก้ไขโครงสร้างระดับสูงของตนเองได้ในขณะรันไทม์หรือคอมไพล์ไทม์ สิ่งนี้พบได้บ่อยในภาษาโปรแกรมระดับสูงที่ใช้เครื่องเสมือน (Virtual Machine) เช่นSmalltalkและพบได้น้อยในภาษาโปรแกรมระดับต่ำ เช่นCภาษาและแพลตฟอร์มที่รองรับการสะท้อน:
- เบฟันจ์
- C++ (ตั้งแต่C++26 )
- ศรีลังกา
- เสน่ห์
- ชัค
- ซีแอลไอ
- งูเห่า
- คอมโพเนนต์ Pascal BlackBox ตัวสร้างคอมโพเนนต์
- เคิร์ล
- ไซเฟอร์
- เดลฟี ออบเจ็กต์ ปาสคาล
- อีซีเอ็มเอสคริปต์
- อีแมคส์ ลิสป์
- หอไอเฟล
- ท่าเรือ
- จูเลีย
- เจวีเอ็ม
- ลิสป์
- ลัว
- ระบบ Maude
- Oberon-2 – ระบบ Oberon ของ ETH
- ออบเจกทีฟซี
- พีซีคาสเซิล
- เพิร์ล
- พีพี
- ปิโก้
- ป็อปล็อก
- พาวเวอร์เชลล์
- บทนำ
- ไพธอน
- ราคุ[ 41 ]
- เรโบล
- สีแดง
- ทับทิม
- สนิม (การทดลอง[ 42 ] [ 43 ] )
- Smalltalk (ภาษาโปรแกรมเชิงวัตถุล้วนๆ พัฒนามาจากXerox PARC )
- สโนโบล
- ทีซีแอล
- Wolfram Mathematica ( ภาษา Wolfram )
- XOTcl
- X++
- โซโจ
ภาษาที่ใช้กฎเกณฑ์
ภาษาโปรแกรมแบบใช้กฎจะสร้างกฎขึ้นเมื่อเงื่อนไขในชุดข้อมูลกระตุ้นการทำงาน โดยจะเลือกชุดเงื่อนไขบางชุดจากทั้งหมด และดำเนินการตามคำสั่งที่อยู่ในกฎเหล่านั้น ภาษาโปรแกรมแบบใช้กฎได้แก่:
ภาษาสคริปต์
- แองเจิลสคริปต์
- แอปเปิลสคริปต์
- ออโต้ฮอตคีย์
- ออโต้อิท
- AWK
- บีซี
- บีนเชลล์
- ภาษาซี (ผ่านคอมไพเลอร์ Tiny C )
- Ch (ตัวแปลภาษา C/C++ แบบฝังตัว)
- ซีแอลไอ
- รายชื่อ
- โคลด์ฟิวชั่น
- อีซีเอ็มเอสคริปต์
- แอ็กชันสคริปต์
- อีซีเอ็มเอสคริปต์สำหรับอีเอ็มแอลอี
- JavaScript (เดิมชื่อ Mocha จากนั้นเปลี่ยนเป็น LiveScript)
- เจสคริปต์
- แหล่งที่มา
- อีแมคส์ ลิสป์
- ผู้บริหาร CMS
- ผู้บริหาร 2
- ภาษาสร้างเกม (GML)
- จีดีสคริปต์
- ไอโอ
- จัสส์
- จูเลีย (โดยค่าเริ่มต้นจะคอมไพล์เป็นรหัสเครื่องแบบเรียลไทม์นอกจากนี้ยังมีโหมดการตีความให้เลือกใช้)
- เจวีเอ็ม
- กรูวี่
- Java (ผ่าน JBang) [ 44 ]
- เข้าร่วม Java
- บ่วงบาศ
- ลัว
- แม็กซ์สคริปต์
- เมล
- โอเรียล
- สคริปต์ปาสคาล
- เพิร์ล
- PHP (ออกแบบมาสำหรับเว็บเซิร์ฟเวอร์)
- ไพธอน
- อาร์
- ราคุ
- เรโบล
- สีแดง
- เร็กซ์
- วัตถุ REXX (OREXX, OOREXX)
- การปฎิวัติ
- ทับทิม
- RUNCOM (ภาษาสคริปต์สำหรับเรียกใช้ โปรแกรม CTSS )
- เอส-ลัง
- เซด
- การสนทนาเล็กๆ น้อยๆ
- กระรอก
- ชา
- ทีซีแอล
- ทอร์คสคริปต์
- วีบีสคริปต์
- ภาษาคำสั่งเชลล์หลายภาษามีความสามารถในการเขียนสคริปต์ที่ทรงพลัง:
- shและสิ่งที่เข้ากันได้
- ภาษาคำสั่งดิจิทัล (DCL) บน VMS
- PowerShell ( เครื่องมือ CLI ที่ใช้ .NET )
ภาษาที่ใช้สแต็ก
ภาษาโปรแกรมแบบสแต็ก (Stack-based languages) เป็น ภาษาโปรแกรมประเภทหนึ่งที่มีโครงสร้างข้อมูล แบบสแต็ก
ภาษาซิงโครนัส
ภาษาโปรแกรมแบบซิงโครนัสได้รับการปรับให้เหมาะสมสำหรับการเขียนโปรแกรมระบบเชิงตอบสนอง ซึ่งเป็นระบบที่มักถูกขัดจังหวะและต้องตอบสนองอย่างรวดเร็ว ระบบดังกล่าวจำนวนมากเรียกอีกอย่างว่าระบบเรียลไทม์และ มักใช้ในระบบฝังตัว
ตัวอย่าง:
ภาษาแรเงา
ภาษา สำหรับการ สร้างเงา (Shading Language)คือภาษาการเขียนโปรแกรมกราฟิกที่ปรับให้เหมาะสมกับการเขียนโปรแกรมเอฟเฟ็กต์เงา รูปแบบของภาษาดังกล่าวโดยทั่วไปประกอบด้วยชนิดข้อมูลพิเศษ เช่น "สี" และ "ค่าปกติ" เนื่องจากตลาดเป้าหมายสำหรับกราฟิกคอมพิวเตอร์ 3 มิติมีความหลากหลาย
การเรนเดอร์แบบเรียลไทม์
เทคโนโลยีนี้มอบทั้งนามธรรมของฮาร์ดแวร์ที่สูงขึ้นและรูปแบบการเขียนโปรแกรมที่ยืดหยุ่นกว่าแบบเดิมที่ใช้สมการการแปลงและการแรเงาแบบตายตัว ซึ่งทำให้นักเขียนโปรแกรมควบคุมกระบวนการเรนเดอร์ได้มากขึ้นและนำเสนอเนื้อหาที่สมบูรณ์ยิ่งขึ้นด้วยต้นทุนที่ต่ำกว่า
- ภาษาแอสเซมบลี Adobe Graphics (AGAL) [ 45 ]
- ภาษาแอสเซมบลี ARB (ARB assembly)
- ภาษาการเขียนเฉดสีของ OpenGL (GLSL หรือ glslang)
- ภาษาการเขียนเฉดสีระดับสูง (HLSL) หรือภาษาแอสเซมบลีเชเดอร์ของ DirectX
- ภาษาเชเดอร์ของ PlayStation (PSSL)
- ภาษาการกำหนดเฉดสีโลหะ (MSL)
- ซีจี
การเรนเดอร์แบบออฟไลน์
ภาษาการสร้างเฉดสีที่ใช้ในการเรนเดอร์แบบออฟไลน์จะให้คุณภาพของภาพสูงสุด การประมวลผลเฉดสีเหล่านี้ใช้เวลานาน และพลังการคำนวณที่ต้องการอาจมีราคาสูง เนื่องจากความสามารถในการสร้างผลลัพธ์ที่สมจริงราวกับภาพถ่าย
- ภาษาแรเงา RenderMan (RSL)
- ภาษาแรเงาแบบเปิด (OSL)
ภาษาการจัดการไวยากรณ์
ภาษาเหล่านี้ช่วยในการสร้างตัววิเคราะห์คำศัพท์และตัวแยกวิเคราะห์สำหรับไวยากรณ์ที่ไม่ขึ้นกับบริบท
- แอนท์แอลอาร์
- Coco/R (EBNF พร้อมความหมาย)
- GNU bison (เวอร์ชันของ Yacc จาก FSF)
- GNU Flex (Lex เวอร์ชัน FSF)
- JavaCC
- lex (การวิเคราะห์คำศัพท์ จาก Bell Labs)
- เอ็ม4
- ไวยากรณ์การแยกวิเคราะห์นิพจน์ (PEG)
- บทนำ
- อีแมคส์ ลิสป์
- ลิสป์
- ราคุ[ 46 ]
- เซเบิลซีซี
- โครงการ
- yacc (yet another compiler-compiler, from Bell Labs)
- เอ็กซ์พีแอล
ภาษาของระบบ
ภาษาโปรแกรมระบบใช้สำหรับงานระดับต่ำ เช่น การจัดการหน่วยความจำหรือการจัดการงาน โดยทั่วไปหมายถึงภาษาที่ใช้สำหรับ การเขียน โปรแกรมระบบภาษาเหล่านี้ได้รับการออกแบบมาเพื่อเขียนซอฟต์แวร์ระบบ ซึ่งโดยปกติแล้วต้องใช้วิธีการพัฒนาที่แตกต่างจากซอฟต์แวร์แอปพลิเคชัน
ซอฟต์แวร์ระบบคือซอฟต์แวร์คอมพิวเตอร์ที่ออกแบบมาเพื่อใช้งานและควบคุมฮาร์ดแวร์คอมพิวเตอร์ และเป็นแพลตฟอร์มสำหรับเรียกใช้ซอฟต์แวร์แอปพลิเคชัน ซอฟต์แวร์ระบบประกอบด้วยซอฟต์แวร์ประเภทต่างๆ เช่น ระบบปฏิบัติการ ซอฟต์แวร์ยูทิลิตี้ ไดรเวอร์อุปกรณ์ คอมไพเลอร์ และลิงเกอร์ ตัวอย่างของภาษาซอฟต์แวร์ระบบ ได้แก่:
ภาษาการแปลง
ภาษาการแปลงมีจุดประสงค์เพื่อแปลง (แปล) รหัสต้นฉบับที่ระบุไว้ในภาษาทางการบางภาษา ให้เป็นรหัสรูปแบบปลายทางที่กำหนดไว้ โดยทั่วไปแล้วจะใช้ในส่วนประกอบระดับกลางของระบบขนาดใหญ่ที่ซับซ้อนกว่า เพื่อนำผลลัพธ์ภายในมาใช้เป็นข้อมูลป้อนเข้าสำหรับขั้นตอนการประมวลผลถัดไป
ภาษาภาพ
ภาษาการเขียนโปรแกรมแบบภาพช่วยให้ผู้ใช้สามารถระบุโปรแกรมในรูปแบบสองมิติ (หรือมากกว่า) แทนที่จะเป็นสตริงข้อความแบบมิติเดียว ผ่านเค้าโครงกราฟิกประเภทต่างๆ ภาษา การเขียนโปรแกรมแบบการไหลของข้อมูล บาง ภาษาก็เป็นภาษาแบบภาพเช่นกัน
ภาษาเวิร์ธ
นักวิทยาศาสตร์คอมพิวเตอร์นิคลาอุส เวิร์ธได้ออกแบบและพัฒนาภาษาโปรแกรมที่มีอิทธิพลหลายภาษา
- อัลโกล ดับเบิลยู
- ออยเลอร์
- โมดูลา
- โอเบรอน (โอเบรอน, โอเบรอน-07, โอเบรอน-2)
- ปาสคาล
- Object Pascal (ชื่อรวมของDelphi , Free Pascal , Oxygeneและอื่นๆ)
ภาษาที่ใช้ XML
ภาษาเหล่านี้เป็นภาษาที่พัฒนาขึ้นโดยใช้ XML หรือทำงานบนXML
- มด
- Cω
- อีซีเอ็มเอสคริปต์สำหรับอีเอ็มแอลอี
- ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ (XAML)
- แอลซีเอ็กซ์
- XPath
- เอ็กซ์คิวรี
- เอ็กซ์โปรค
- การแปลงภาษาสไตล์ชีตที่ขยายได้ ( XSLT )
ดูเพิ่มเติม
- รูปแบบการเขียนโปรแกรม
- IEC 61131-3 – มาตรฐานสำหรับ ภาษาของ ตัวควบคุมลอจิกแบบโปรแกรมได้ (PLC)
- รายชื่อภาษาการเขียนโปรแกรมเพื่อการศึกษา
- รายชื่อภาษามาร์กอัปเอกสาร
- รายชื่อภาษามาร์กอัป
- รายชื่อภาษาโปรแกรมมิ่งโอเพนซอร์ส
- ภาษาโปรแกรมเชิงลึกลับ
หมายเหตุ
- ^การใช้งาน Ada บางส่วนมีตัวเก็บขยะ [ 17 ]แม้ว่าข้อกำหนดของภาษาจะไม่กำหนดให้ต้องรวมไว้ก็ตาม
- ^ในตอนแรกนักพัฒนาต้องเรียกคืนหน่วยความจำด้วยตนเองโดยใช้
saveและrestorePostScript ระดับ 2 ได้นำตัวเก็บขยะมาใช้ แต่การใช้งานนั้นเป็นทางเลือก [ 28 ] - ^บนแพลตฟอร์มของ Apple ฟังก์ชันเหล่านี้จะถูกนำเข้าจากไลบรารีมาตรฐาน C (ซึ่งนำเข้าจากหรือ
Foundation); บน Linux นักพัฒนาจำเป็นต้องนำเข้าและบน WindowsAppKitUIKitGlibcucrt - ^วัตถุของ SQL คือชุดของระเบียนฐานข้อมูลซึ่งเรียกว่าตารางภาษาโปรแกรม แบบเต็มรูปแบบ สามารถระบุอัลกอริทึม ได้ โดยไม่ขึ้นอยู่กับเวลาการทำงานดังนั้นอัลกอริทึมจึงสามารถถือได้ว่าสร้างผลลัพธ์ที่ใช้งานได้ ในทางตรงกันข้าม SQL สามารถเลือกได้เฉพาะระเบียนที่จำกัดอยู่ในชุดข้อมูลปัจจุบันเท่านั้น ซึ่งก็คือข้อมูลที่มีอยู่ในระบบ แทนที่จะสร้างข้อความที่ระบุความถูกต้องของผลลัพธ์
- ^ข้อยกเว้นที่น่าสนใจคือ CPU ซีรีส์ 1801 ของ โซเวียต/รัสเซีย ซึ่งเดิมทีใช้สถาปัตยกรรมชุดคำสั่ง (ISA) ภายในประเทศของตนเอง แต่ต่อมาได้รับการออกแบบใหม่ให้เข้ากันได้กับ PDP-11ตามนโยบาย
- ^ a bไม่แสดงรายการรุ่นย่อย มีเพียงรายการรุ่นพื้นฐานเท่านั้น
- ^แนวคิดเรื่องอ็อบเจ็กต์ที่มีความหมายเชิงวัตถุแบบการเรียกใช้ฟังก์ชันแบบเดี่ยว (single-dispatch) แบบดั้งเดิมนั้นไม่มีอยู่ใน Julia แต่จะใช้การเรียกใช้ฟังก์ชันแบบหลายฟังก์ชัน (multiple dispatch) ที่ครอบคลุมกว่าสำหรับประเภทข้อมูลที่แตกต่างกันในขณะรันไทม์แทน
- ^ Swift ใช้การนับจำนวนการอ้างอิงอัตโนมัติ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ รายชื่อภาษาโปรแกรมตามประเภท
นี่คือรายชื่อ ภาษาโปรแกรม ที่โดดเด่น โดยจัดกลุ่มตามคุณลักษณะเด่นของภาษา เนื่องจากภาษาหนึ่งๆ สามารถมีคุณลักษณะได้หลายอย่าง ดังนั้นภาษาเดียวกันจึงอาจอยู่ในหลายกลุ่มได้
ภาษาการเขียนโปรแกรมเชิงเอเจนต์
การเขียนโปรแกรมเชิงเอเจนต์ช่วยให้นักพัฒนาสามารถสร้าง ขยาย และใช้งาน ซอฟต์แวร์เอเจนต์ ซึ่งเป็นนามธรรมของวัตถุที่สามารถส่งข้อความไปยังเอเจนต์อื่นๆ ได้
ภาษาอาร์เรย์
ภาษา การเขียนโปรแกรมแบบอาร์เรย์ (หรือเรียกอีกอย่างว่า ภาษาเวกเตอร์ หรือ ภาษาหลายมิติ ) จะขยายการดำเนินการบน ค่าสเกลาร์ ให้สามารถนำไปใช้กับ เวกเตอร์ เมท ริกซ์ และ อาร์เรย์มิติสูง ได้ อย่างโปร่งใส
ภาษาการเขียนโปรแกรมเชิงแง่มุม
การเขียนโปรแกรมเชิงแง่มุม (Aspect-oriented programming) ช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชันใหม่ลงในโค้ด ซึ่งเรียกว่า คำแนะนำ (advice ) โดยไม่ต้องแก้ไขโค้ดเดิม แต่จะใช้ pointcut ในการนำคำแนะนำนั้นไปใช้ในบล็อกโค้ด แทน