ภาษาโปรแกรม C 1978
"C เป็นภาษาการเขียนโปรแกรมที่มีวัตถุประสงค์ทั่วไปซึ่งมีเศรษฐกิจของการแสดงออกการไหลของการควบคุมที่ทันสมัยและโครงสร้างข้อมูลและชุดของผู้ให้บริการที่หลากหลาย C ไม่ใช่ภาษา" ระดับสูงมาก "หรือ" ใหญ่ "และไม่ได้มีความเชี่ยวชาญในการใช้งานใด ๆ
"จากประสบการณ์ของเรา C ได้พิสูจน์แล้วว่าเป็นภาษาที่น่าพึงพอใจแสดงออกและหลากหลายสำหรับโปรแกรมที่หลากหลายมันเป็นเรื่องง่ายที่จะเรียนรู้และมันก็สวมใส่ได้ดีเช่นเดียวกับประสบการณ์ที่เติบโตขึ้น"
ภาษาการเขียนโปรแกรม C Second Edition 1988
"อย่างที่เราพูดในคำนำในฉบับพิมพ์ครั้งแรก C" สวมใส่ประสบการณ์ของมันด้วยการเติบโต "ด้วยประสบการณ์ที่มากขึ้นหลายสิบปีเรายังคงรู้สึกแบบนั้น"
เค้กเป็นส่วนหน้าคอมไพเลอร์ที่เขียนตั้งแต่เริ่มต้นใน C ยึดติดกับข้อกำหนดภาษา C23 และอื่น ๆ มันทำหน้าที่เป็นแพลตฟอร์มสำหรับการทดลองกับคุณสมบัติใหม่รวมถึงข้อเสนอภาษา C2Y การปรับปรุงความปลอดภัยและส่วนขยายเช่นนิพจน์แลมบ์ดาและข้อความเลื่อนเวลา
แบ็กเอนด์ปัจจุบันสร้างรหัสที่เข้ากันได้กับ C89 ซึ่งสามารถเป็นท่อด้วยคอมไพเลอร์ที่มีอยู่เพื่อสร้าง executables
เค้กมีจุดมุ่งหมายเพื่อเพิ่มความปลอดภัยของ C โดยการให้ข้อความเตือนคุณภาพสูงและการวิเคราะห์การไหลขั้นสูงรวมถึงการตรวจสอบอายุการใช้งานของวัตถุ
นี่เป็นวิธีที่ดีที่สุดในการลอง
http://thradams.com/cake/playground.html
หมายเหตุ: เค้กยังอยู่ในระหว่างการพัฒนาและยังไม่ถึงรุ่นที่มั่นคง
เค้กสามารถใช้เป็นเครื่องวิเคราะห์แบบคงที่ข้างคอมไพเลอร์อื่น ๆ มันสร้างไฟล์ SARIF ซึ่งได้รับการยอมรับจาก IDE ที่เป็นที่นิยมเช่น Visual Studio และ Visual Studio Code ซึ่งเป็นการรวมที่ราบรื่น
นอกจากนี้ยังสามารถทำหน้าที่เป็นตัวประมวลผลล่วงหน้าแปลงรหัส C23 เป็น C89 สิ่งนี้ช่วยให้นักพัฒนาสามารถใช้คุณสมบัติที่ทันสมัยในขณะที่กำหนดเป้าหมายคอมไพเลอร์ที่ยังไม่รองรับมาตรฐานภาษาล่าสุด
เค้กเวอร์ชันก่อนหน้ารวมโหมดการแปลงเพื่อแปลรหัสในขณะที่รักษาชิ้นส่วน preprocessor แม้ว่าจะมีประโยชน์ แต่กระบวนการนี้ไม่สามารถรับประกันการแปลง 100% แต่ทำงานเป็นเครื่องมือมากกว่าคอมไพเลอร์ ด้วยเค้กเวอร์ชันใหม่ที่เคลื่อนไปสู่การเป็นคอมไพเลอร์แบบดั้งเดิมมากขึ้นโหมดก่อนหน้านี้ได้ถูกยกเลิกที่เวอร์ชัน 0.9.36 เวอร์ชันนี้ออนไลน์ที่นี่ http://thradams.com/cake3/playground.html
gitHub https://github.com/thradams/cake
เปิดพรอมต์คำสั่งนักพัฒนาของ Visual Studio ไปที่ไดเรกทอรี SRC และพิมพ์
cl build.c && build
สิ่งนี้จะสร้าง cake.exe จากนั้นเรียกใช้เค้กบนซอร์สโค้ดของตัวเอง
ไปที่ไดเรกทอรี SRC และพิมพ์:
gcc build.c -o build && ./build
ไปที่ไดเรกทอรี SRC และพิมพ์:
clang build.c -o build && ./build
ในการเรียกใช้การทดสอบหน่วย Windows/Linux เพิ่ม -dtest ตัวอย่างเช่น:
gcc -DTEST build.c -o build && ./build
จำเป็นต้องใช้ emscripten https://emscripten.org/
ก่อนอื่นทำบิลด์ปกติ
บิลด์ปกติยังสร้างไฟล์ lib.c ซึ่งเป็นเวอร์ชันที่รวมกันของ "Core Lib"
จากนั้นที่ ./ SRC ประเภท:
call emcc -DMOCKFILES "lib.c" -o "Webcake.js" -s WASM=0 -s EXPORTED_FUNCTIONS="['_CompileText']" -s EXTRA_EXPORTED_RUNTIME_METHODS="['ccall', 'cwrap']"
สิ่งนี้จะสร้าง src web cake.js
ตรวจสอบให้แน่ใจว่าเค้กอยู่บนเส้นทางระบบของคุณ
ตัวอย่าง
cake source.c
สิ่งนี้จะส่งออก ./out/source.c
ดูคู่มือ
เรามาที่นี่ได้อย่างไร?
สำเนาของแต่ละร่างมาตรฐาน C รวมอยู่ในโฟลเดอร์ DOCS
การแนะนำที่ดีมากเขียนโดย Al Williams
การเขียนโปรแกรม C23 สำหรับทุกคน
https://hackaday.com/2022/09/13/c23-programming-for-everyone/
คุณสามารถมีส่วนร่วมโดยลองเค้กรายงานข้อบกพร่องและให้ข้อเสนอแนะ
มีข้อเสนอแนะสำหรับ C หรือไม่?
เซิร์ฟเวอร์ Discord
https://discord.gg/yrekr2n65s
ฉันใช้ Visual Studio 2022 IDE เพื่อเขียน/ดีบักเค้กแหล่งที่มา เค้กกำลังแยกวิเคราะห์ตัวเองโดยใช้รวมของ MSVC และสร้าง DIR ออก หลังจากสร้าง
ฉันใช้รหัส Visual Studio กับ WSL สำหรับการทดสอบและรวบรวมรหัสสำหรับ Linux
ซอร์สโค้ดเค้กไม่ได้ใช้ส่วนขยายใด ๆ ดังนั้นเอาต์พุตจะเหมือนกันของอินพุต การรวบรวมนี้มีประโยชน์สำหรับการติดตามข้อผิดพลาดพร้อมกับการทดสอบหน่วย
CFRONT เป็นคอมไพเลอร์ C ++ ดั้งเดิมที่ออกแบบมาเพื่อแปลรหัส C ++ เป็น C.
แม้ว่า CFRONT จะเข้ากันได้กับ C89 ในขั้นต้น แต่ในที่สุดมันก็แยกออกจากวิวัฒนาการของ C
ในทางตรงกันข้ามเค้กยังคงเป็นจริงกับการพัฒนาหลักของ C ทำให้มั่นใจได้ว่าเข้ากันได้อย่างเต็มที่
ส่วนขยายของมันมีจุดมุ่งหมายเพื่อรักษาสาระสำคัญของ C ในขณะที่ช่วยให้นักพัฒนาสามารถทดลองและมีส่วนร่วมในวิวัฒนาการของ C โดยใช้คอมไพเลอร์โอเพนซอร์ซที่เขียนใน C.