อ่าน 3 นาที
เคิร์ล (ภาษาโปรแกรม)
Curlเป็นภาษาโปรแกรมเชิงวัตถุแบบสะท้อนกลับ สำหรับแอปพลิเคชันเว็บ แบบโต้ตอบ โดยมีเป้าหมายเพื่อให้การเปลี่ยนผ่านระหว่างการจัดรูปแบบเนื้อหาและการเขียนโปรแกรมคอมพิวเตอร์ ราบรื่นยิ่งขึ้น
เคิร์ล (ภาษาโปรแกรม)
| เคิร์ล | |
|---|---|
| กระบวนทัศน์ | หลายกระบวนทัศน์ : เชิงวัตถุ , การ มาร์กอัป |
| ออกแบบโดย | สตีฟ วอร์ด , MIT |
| นักพัฒนา | บริษัท เคิร์ล อิงค์, บริษัท ซูมิโช คอมพิวเตอร์ ซิสเต็มส์ คอร์ป, บริษัท เอสซีเอสเค คอร์ปอเรชั่น |
| ปรากฏครั้งแรก | 1998 |
| เวอร์ชันเสถียร | 8.0.15 / 16 ตุลาคม 2025 |
| วินัยในการพิมพ์ | แข็งแกร่ง |
| โอเอส | วินโดวส์ |
| ใบอนุญาต | ใบอนุญาตของ Curl www.curl.com/products/license/ |
| เว็บไซต์ | www.curl.com |
| ภาษาถิ่น | |
| ไม่มี | |
| ได้รับอิทธิพลจาก | |
| HTML , JavaScript , Lisp | |
Curlเป็นภาษาโปรแกรมเชิงวัตถุแบบสะท้อนกลับ สำหรับแอปพลิเคชันเว็บ แบบโต้ตอบ โดยมีเป้าหมายเพื่อให้การเปลี่ยนผ่านระหว่างการจัดรูปแบบเนื้อหาและการเขียนโปรแกรมคอมพิวเตอร์ ราบรื่นยิ่งขึ้น ทำให้สามารถฝังวัตถุที่ซับซ้อนลงในเอกสารธรรมดาได้โดยไม่ต้องสลับไปมาระหว่างภาษาโปรแกรมหรือแพลตฟอร์มการพัฒนา การใช้งาน Curl ในช่วงแรกประกอบด้วยตัวแปลภาษาเท่านั้นต่อมาได้มีการเพิ่ม คอมไพเลอร์ เข้ามา
Curl ผสานรวมการจัดรูปแบบ ข้อความ (เช่น HyperText Markup Language ( HTML )) การเขียนสคริปต์ (เช่นJavaScript ) และการประมวลผลขั้นสูง (เช่นJava , C#หรือC++ ) ไว้ในเฟรมเวิร์กเดียว มีการใช้งานในแอปพลิเคชันต่างๆ ทั้งภายในองค์กรธุรกิจระหว่างองค์กร (B2B) และธุรกิจระหว่างองค์กรกับผู้บริโภค (B2C)
โปรแกรม Curl อาจถูกคอมไพล์เป็นแอปเพล็ต Curl ซึ่งสามารถแสดงผลได้โดยใช้ Curl RTE ซึ่งเป็นสภาพแวดล้อมรันไทม์ที่มีปลั๊กอินสำหรับเว็บเบราว์เซอร์ปัจจุบันรองรับเฉพาะบนMicrosoft Windowsเท่านั้นส่วน LinuxและmacOSถูกยกเลิกเมื่อวันที่ 25 มีนาคม 2019 (เริ่มตั้งแต่เวอร์ชัน 8.0.10) [ 1 ] Curl รองรับ"แอปเพล็ตแบบแยกส่วน"ซึ่งเป็นแอปเพล็ตที่ปรับใช้บนเว็บซึ่งทำงานบนเดสก์ท็อปของผู้ใช้โดยไม่ขึ้นกับหน้าต่างเบราว์เซอร์ เช่นเดียวกับในMicrosoft Silverlight 3 และAdobe AIR
สถาปัตยกรรม
ภาษา Curl พยายามแก้ไขปัญหาที่เกิดขึ้นมานานแล้ว นั่นคือ แอปพลิเคชันเว็บมักมีส่วนประกอบที่เขียนด้วยภาษา เครื่องมือ และเฟรมเวิร์กที่แตกต่างกัน อุปสรรคสุดท้ายและยากที่สุดคือการทำให้ส่วนประกอบเหล่านี้สื่อสารกันได้อย่างสม่ำเสมอ Curl พยายามหลีกเลี่ยงปัญหาเหล่านี้โดยการจัดเตรียม อินเทอร์เฟซ ทางไวยากรณ์และความหมายที่ สอดคล้องกัน ในทุกระดับของการสร้างเนื้อหาเว็บ
Curl เป็นภาษามาร์กอัปเช่นเดียวกับ HTML กล่าวคือข้อความธรรมดาจะถูกแสดงผลเป็นข้อความ ในขณะเดียวกัน Curl ก็มีภาษาการเขียนโปรแกรมเชิงวัตถุที่รองรับการสืบทอดแบบหลายทางแอปพลิเคชัน Curl ไม่จำเป็นต้องปฏิบัติตามการแยกข้อมูล รูปแบบ และพฤติกรรมที่ HTML, Cascading Style Sheets (CSS) และ JavaScript กำหนดไว้ แม้ว่าจะสามารถใช้รูปแบบการเขียนโปรแกรมดังกล่าวใน Curl ได้หากต้องการ
แม้ว่าภาษา Curl จะสามารถใช้แทน HTML ในการนำเสนอข้อความที่จัดรูปแบบได้ แต่ความสามารถของมันก็ครอบคลุมไปถึงภาษาการเขียนโปรแกรมระบบเชิงวัตถุแบบคอมไพล์ที่มีการกำหนดประเภทอย่างเข้มงวด[ 2 ]ทั้งโครงสร้างการเขียน (ระดับ HTML) และการเขียนโปรแกรมของ Curl สามารถขยายได้ในโค้ดของผู้ใช้ ภาษาได้รับการออกแบบมาเพื่อให้แอปพลิเคชัน Curl สามารถคอมไพล์เป็นโค้ดเนทีฟของเครื่องไคลเอ็นต์โดยคอมไพเลอร์แบบ just-in-timeและทำงานด้วยความเร็วสูง แอปเพล็ต Curl ยังสามารถเขียนขึ้นเพื่อให้สามารถทำงานแบบออฟไลน์ได้เมื่อตัดการเชื่อมต่อจากเครือข่าย ( การประมวลผลที่เชื่อมต่อเป็นครั้งคราว ) Curl IDEเป็นแอปพลิเคชันที่เขียนด้วย Curl
ไวยากรณ์
ตัวอย่างแอปเพล็ต Curl อย่างง่ายสำหรับโปรแกรม "Hello, World!"อาจมีดังนี้:
{แอปเพล็ต Curl 7.0, 8.0} {ข้อความ สี = "สีน้ำเงิน" ขนาดตัวอักษร = 16pt สวัสดีโลก} โค้ดนี้จะทำงานได้ก็ต่อเมื่อผู้ใช้ติดตั้งโปรแกรม Curl เวอร์ชัน 7.0 หรือ 8.0 ขึ้นไป
Curl มีทั้งมาโคร และขั้นตอนข้อความ รวมถึงขั้นตอนที่ไม่ระบุชื่อและเมธอดที่มีชื่อ อีกทางเลือกหนึ่งที่ใช้ ย่อหน้าขั้นตอนข้อความคือ:
{ย่อหน้า ย่อหน้าเยื้องซ้าย 0.5 นิ้ว {สีข้อความ = "สีแดง", ขนาดตัวอักษร = 12pt, สวัสดี} {สีข้อความ = "สีเขียว", ขนาดตัวอักษร = 12pt, โลก}} เมื่อไม่นานมานี้ รูปแบบการจัดวางแบบนี้ได้รับการนำไปใช้โดย "นักพัฒนา" ใน ภาษา Groovyสำหรับเครื่องเสมือน Java (JVM) แต่ก็เป็นที่คุ้นเคยสำหรับผู้ใช้ CSS หรือTcl / Tk ด้วย เช่นกัน คุณสมบัติส่วนใหญ่สำหรับเว็บแอปพลิเคชันที่ปัจจุบันใช้งานผ่านการผสมผสานของไลบรารี JavaScript + HTML + CSS นั้นมีอยู่แล้วในภาษา Curl รวมถึงคุณสมบัติที่มักเกี่ยวข้องกับPrototype + script.aculo.usเช่น แผงแบบพับได้ (accordion panes)
Curl ตั้งค่าฟังก์ชันเรียกกลับ (callback) ในลักษณะเดียวกับที่ Groovy ใช้:
{ความกว้างของปุ่มคำสั่ง = 100pt, ความสูง = 50pt label = {center {bold เรียกใช้ตัวจัดการเหตุการณ์เมื่อคลิก}}, control-color = "สีส้ม" || แนบตัวจัดการเหตุการณ์ต่อไปนี้เข้ากับปุ่มคำสั่งนี้ {เมื่อดำเนินการ} {ป๊อปอัพข้อความ} หัวข้อ = "ข้อความของคุณ" นี่คือกล่องโต้ตอบข้อความผู้ใช้ } }} การแสดงความคิดเห็นด้วย Curl ใช้เครื่องหมายขีดแนวตั้งในหลายรูปแบบ รูปแบบที่ง่ายที่สุดมีดังนี้:
ข้อความแสดงความคิดเห็นสามารถอยู่ในบรรทัดเดียวได้ || ความเห็นเกี่ยวกับบรรทัดเดียวโดดๆ หรืออาจอยู่ตอนท้ายก็ได้ || ข้อความแสดงความคิดเห็นในบรรทัดเดียวกับโค้ด ของเส้น} เป็นการทำเครื่องหมายแบบเบา
เนื่องจาก Curl รองรับทั้งขั้นตอนการจัดการข้อความที่ผู้ใช้กำหนดเองและสไตล์ชีตจึงสามารถใช้เป็น มาร์กอัปแบบเบา เฉพาะโดเมน ได้อย่างง่ายดาย ข้อได้เปรียบที่สำคัญเหนือมาร์กอัป HTML แบบข้อความธรรมดาคือ สามารถตั้งค่าการเข้ารหัสข้อความเป็นUTF-8ได้ และข้อความที่ป้อนในโปรแกรมแก้ไขข้อความที่รองรับUnicodeโดยไม่ต้องหลีกเลี่ยงอักขระใดๆ (เช่นเดียวกับ JavaScript, Curl เป็นมิตรกับ Unicode) ตัวอย่าง บทกวีคือ:
{บทกวี || ครอบคลุมบทกวีทั้งหมด} {บทแรก || ตรงนี้ ในภาษาใดก็ได้} } {บท || อีกบทหนึ่งตรงนี้ในภาษาใดก็ได้} } } ซึ่งในขั้นต้นสามารถนำไปใช้ได้โดยการกำหนดมาร์กอัปบทกวีและบทเป็นรูปแบบข้อความย่อหน้า บทสามารถปรับปรุงเพิ่มเติมได้โดยการรวมจุดยึดนำทางที่ซ่อนอยู่สำหรับการนำทางหน้าโดยใช้ Curl {destination} ซึ่งเป็นกระบวนการข้อความอย่างหนึ่ง
สามารถใช้มาร์กอัปเดียวกันเพื่อให้ได้ผลลัพธ์ที่แตกต่างกันได้ เนื่องจากสามารถกำหนดรูปแบบข้อความให้มองเห็นได้ในบริบทหนึ่งและซ่อนไว้ในอีกบริบทหนึ่งได้ นอกจากนี้ Curl ยังอนุญาตให้รวมไฟล์ระดับบนสุดได้ เช่น สามารถรวมข้อความต้นฉบับในรูปแบบมาร์กอัปไว้ในไฟล์หลักต่างๆ ได้ ตัวอย่างเช่น ในด้านการศึกษา สามารถสร้างไฟล์ต้นฉบับของข้อสอบ และรวมไว้ในทั้งเวอร์ชันสำหรับนักเรียนและครูได้
ดูเพิ่มเติม
- ความเหมือนกันของรูปแบบ : Curl เป็นทั้งภาษาโปรแกรมและรูปแบบข้อมูล
ลิงก์ภายนอก
- โครงการ MIT Curlคือผลลัพธ์จากโครงการวิจัย Curl ที่ห้องปฏิบัติการวิทยาศาสตร์คอมพิวเตอร์ของสถาบันเทคโนโลยีแมสซาชูเซตส์ (MIT)
- บริษัท Curl, Inc.และCurl International Corp.พัฒนาและจัดจำหน่ายผลิตภัณฑ์เชิงพาณิชย์หลากหลายประเภท โดยอิงจากผลการวิจัยของ MIT บริษัทนี้เป็นเจ้าของโดยSCSK Corporation ซึ่งเป็น บริษัทในเครือของSumitomo Corp. ที่ถือหุ้นส่วนใหญ่
- บทวิจารณ์ Curl 6.0โดย Martin Heller จาก InfoWorld InfoWorldมอบรางวัลเทคโนโลยีแห่งปี 2008 ให้กับ Curl ใน หมวดแอป พลิเคชันอินเทอร์เน็ตที่ทันสมัย (Rich Internet Application )