Pretty.c - การเขียนสคริปต์บน C
(github.com/aartaka)- Pretty C เป็นภาษาสคริปต์ใหม่ที่เข้ากันได้กับ C โดยมีฟีเจอร์อย่าง dynamic typing, การวนซ้ำแบบ generic และการติดตามทรัพยากร
- ยังคงความเข้ากันได้ย้อนหลังกับ C และไลบรารีทั้งหมด
- ได้แรงบันดาลใจจาก Lua, Python, JavaScript และ Lisp
เป้าหมาย
- มอบ syntactic sugar จำนวนมากให้กับนักพัฒนา C เพื่อให้ใช้งาน C ได้ง่ายขึ้น
- วางตำแหน่งให้เป็นภาษาสคริปต์ขั้นสุดยอดที่สามารถมาแทน Lua, Python, JavaScript, Ruby และภาษาอื่น ๆ ได้
- ทำให้ทุกโค้ดเบสเป็นมิตรกับผู้เริ่มต้นได้ด้วยการ include ไฟล์ header เพียงไฟล์เดียว
เริ่มต้นใช้งาน
- สามารถโคลน GitHub repository หรือคัดลอกไฟล์
pretty.hไปใช้งานได้
ความสะดวกที่มีให้
Standard header ที่รวมมาให้
stdbool.hสำหรับtrue,false,boolstdint.hสำหรับชนิดจำนวนเต็มแบบ fixed-widthiso646.hสำหรับตัวดำเนินการทางเลือกที่อ่านง่ายขึ้น
มาโครแบบง่าย
- มีมาโครอย่าง
max,min,len,default,limit,between,divisible
ชนิดข้อมูลใหม่
- มี type alias อย่าง
string,byte,bytes,any - มีรูปย่อของจำนวนเต็มอย่าง
uchar,ushort,uint,ulong
alias ใหม่
- มี alias ของตัวดำเนินการอย่าง
eq,is,bitnot,bitxor - มีตัวดำเนินการเปรียบเทียบอย่าง
below,above,upto,downto - มี predicate สำหรับตัวเลข/ข้อมูลอย่าง
even,odd,positive,negative,zero,empty - มี alias อย่าง
nil,until,elif,ifnt,repeat,done~/~finish,pass
การอนุมานชนิดข้อมูล (GCC, Clang หรือ C23+)
- สามารถใช้การอนุมานชนิดข้อมูลได้ผ่านคีย์เวิร์ด
var,let,local
การแสดงผลแบบ generic (C11+)
- ใช้
print,printlnเพื่อแสดงข้อมูลได้หลายชนิด
การเทียบความเท่ากันแบบ generic (C11+)
- ใช้
equalเพื่อเปรียบเทียบข้อมูลหลายชนิดได้
ternary operator แบบอ่านง่าย
- ใช้คีย์เวิร์ดอย่าง
when,then,other,otherwise,only,otherwhenเพื่อให้ ternary operator อ่านง่ายขึ้น
มาโคร for
- มีรูปแบบการวนซ้ำหลากหลายผ่านมาโครอย่าง
foreach,forthese,fortimes,forrange,forrangeby
มาโครสำหรับการกำหนดค่า
- ใช้มาโครอย่าง
new,vector,deleteเพื่อจัดสรรและคืนหน่วยความจำได้ง่าย
ยูทิลิตีสำหรับบล็อก
- มียูทิลิตีสำหรับบล็อกอย่าง
lambda,with,defer,try,catch
สรุปโดย GN⁺
Pretty C เป็นโปรเจกต์ที่เพิ่ม syntactic sugar หลากหลายรูปแบบให้กับภาษา C เพื่อช่วยให้นักพัฒนาเขียนโค้ดได้ง่ายขึ้น โดยเฉพาะการคงความเข้ากันได้ย้อนหลังกับ C เอาไว้ พร้อมทั้งนำแรงบันดาลใจจากภาษาอย่าง Lua, Python และ JavaScript มาสร้างฟีเจอร์ที่หลากหลาย ฟีเจอร์เหล่านี้ช่วยให้นักพัฒนา C เขียนโค้ดได้กระชับและอ่านง่ายขึ้น โปรเจกต์ที่มีแนวคิดคล้ายกัน ได้แก่ Zig และ Nim
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News