Pretty.c - Cの上で動くスクリプティング
(github.com/aartaka)- Pretty CはCと互換性のある新しいスクリプト言語で、動的型付け、ジェネリック反復、リソース追跡などの機能を提供
- Cおよびあらゆるライブラリとの下位互換性を維持
- Lua、Python、JavaScript、Lispから着想を得ている
目標
- C開発者に多くの構文的な糖衣構文(Sugar)を提供し、Cをより使いやすくする
- Lua、Python、JavaScript、Rubyなど複数の言語を置き換えられる究極のスクリプト言語を目指す
- 単一のヘッダーファイルを1つ含めるだけで、あらゆるコードベースを初心者にやさしいものへ変換する
はじめ方
- GitHubリポジトリをクローンするか、
pretty.hファイルをコピーして利用できる
提供される便利機能
含まれる標準ヘッダー
stdbool.hでtrue、false、boolを提供stdint.hで固定幅整数型を提供iso646.hで可読性の高い演算子代替を提供
シンプルなマクロ
max、min、len、default、limit、between、divisibleなどのマクロを提供
新しい型
string、byte、bytes、anyなどの型エイリアスを提供uchar、ushort、uint、ulongなどの整数短縮形を提供
新しい別名
eq、is、bitnot、bitxorなどの演算子エイリアスを提供below、above、upto、downtoなどの比較演算子を提供even、odd、positive、negative、zero、emptyなどの数値/データ述語を提供nil、until、elif、ifnt、repeat、done~/~finish、passなどの別名を提供
型推論(GCC、Clang、またはC23+)
var、let、localキーワードを使って型推論が可能
ジェネリック出力(C11+)
print、printlnによりさまざまな型のデータを出力可能
ジェネリック等価性(C11+)
equalによりさまざまな型のデータを比較可能
読みやすい三項演算子
when、then、other、otherwise、only、otherwhenなどのキーワードで可読性の高い三項演算子を利用可能
for マクロ
foreach、forthese、fortimes、forrange、forrangebyなどのマクロで多様な反復パターンを提供
代入マクロ
new、vector、deleteなどのマクロで簡単にメモリ確保と解放が可能
ブロックユーティリティ
lambda、with、defer、try、catchなどのブロックユーティリティを提供
GN⁺のまとめ
Pretty Cは、C言語にさまざまな糖衣構文を追加することで、開発者がより簡単にコードを書けるよう支援するプロジェクト。特に、Cの下位互換性を維持しながら、Lua、Python、JavaScriptなどの言語から着想を得た多彩な機能を提供する。これらの機能は、C開発者がより簡潔で可読性の高いコードを書く助けになる可能性がある。類似の機能を提供するプロジェクトとしては、ZigやNimなどがある。
1件のコメント
Hacker Newsのコメント
ifntよりunlessのほうが読みやすい