[問題] 有C語言的包裝工具嗎?(像moonscript之類)
有些環境只能使用C語言
但是C真的很不適合大型專案
因為太容易產生命名超長的變數或函式
雖然還有struct可以讓函式命名簡短些
但是那需要浪費指標空間
有沒有什麼工具是使用適合大型專案的語法
然後輸出成C語言的?
我目前有查到llvm有可以將C++轉成C的功能,不過還沒詳細看
各位有什麼工具可以介紹一下嗎?
下面列一下版友的建議跟我目前查到的
很意外這種東西很少人做,可能只有C可用的環境大多不會建立大型專案
*cython
*agda
*mathematica
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.54.161
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480299585.A.D96.html
→
11/28 10:52, , 1F
11/28 10:52, 1F
推
11/28 11:05, , 2F
11/28 11:05, 2F
→
11/28 11:45, , 3F
11/28 11:45, 3F
→
11/28 11:46, , 4F
11/28 11:46, 4F
推
11/28 11:47, , 5F
11/28 11:47, 5F
因為是低階的嵌入式系統所以才用C語言
超長的變數命名實在讀的很不舒服
寫那麼長就只為了避開命名衝突
我有試著用巨集來縮短命名,不過這做法看起來有點危險
另外像zip或lua之類的專案會使用C語言來寫是為了移植性跟速度吧?
我有計畫寫些通用工具發表出來
如果能用C語言實作會比較理想(找不到適當工具的話還是會回去用C++實現)
所以才想找工具來用更好的風格來寫C
這工具如果能控制生產出來C程式碼要使用什麼前綴就更好了
這樣遇到跟其他library命名衝突還可以改名字
C++對命名問題就處理的還ok
名字一樣很長,但是允許你省掉namespace名稱
※ 編輯: eye5002003 (118.167.54.161), 11/28/2016 13:27:25
→
11/28 13:16, , 6F
11/28 13:16, 6F
不光是想摳那些記憶體
C語言的定位本來就是原始不花俏的基礎工具
語法上就是沒那麼方便
※ 編輯: eye5002003 (118.167.54.161), 11/28/2016 13:59:56
推
11/28 14:12, , 7F
11/28 14:12, 7F
→
11/28 14:12, , 8F
11/28 14:12, 8F
Agda -> Epic -> C 這樣轉嗎?
我不排斥functional programming,但是怕駕馭不了這種寫法
Agda勉強算是可以考慮的選項
※ 編輯: eye5002003 (118.167.54.161), 11/28/2016 15:20:09
推
11/28 15:22, , 9F
11/28 15:22, 9F
推
11/28 15:24, , 10F
11/28 15:24, 10F
cython我前面有提過了,python語法是很好沒錯
但是cython生出來的C程式碼看起來不大優,我沒認真研究啦
這個我再實際用看看
※ 編輯: eye5002003 (118.167.54.161), 11/28/2016 16:29:58
→
11/28 16:35, , 11F
11/28 16:35, 11F
→
11/28 16:36, , 12F
11/28 16:36, 12F
→
11/28 16:36, , 13F
11/28 16:36, 13F
推
11/28 17:59, , 14F
11/28 17:59, 14F
mulle-objc的做法不是我想要的
※ 編輯: eye5002003 (118.167.54.161), 11/28/2016 18:35:38
→
11/28 18:40, , 15F
11/28 18:40, 15F
→
11/28 18:40, , 16F
11/28 18:40, 16F
→
11/28 18:41, , 17F
11/28 18:41, 17F
噓
11/28 18:42, , 18F
11/28 18:42, 18F
→
11/28 18:44, , 19F
11/28 18:44, 19F
→
11/28 18:44, , 20F
11/28 18:44, 20F
→
11/28 18:44, , 21F
11/28 18:44, 21F
→
11/28 18:45, , 22F
11/28 18:45, 22F
→
11/28 18:45, , 23F
11/28 18:45, 23F
推
11/28 18:49, , 24F
11/28 18:49, 24F
→
11/28 18:49, , 25F
11/28 18:49, 25F
→
11/28 22:08, , 26F
11/28 22:08, 26F
推
11/28 22:11, , 27F
11/28 22:11, 27F
→
11/28 22:11, , 28F
11/28 22:11, 28F
推
11/28 22:17, , 29F
11/28 22:17, 29F
→
11/28 22:17, , 30F
11/28 22:17, 30F
→
11/28 22:20, , 31F
11/28 22:20, 31F
推
11/29 09:57, , 32F
11/29 09:57, 32F
→
11/29 09:58, , 33F
11/29 09:58, 33F
→
11/29 09:59, , 34F
11/29 09:59, 34F
→
11/29 10:19, , 35F
11/29 10:19, 35F
推
11/29 11:22, , 36F
11/29 11:22, 36F
推
11/29 11:22, , 37F
11/29 11:22, 37F
→
11/29 11:24, , 38F
11/29 11:24, 38F
→
11/29 11:24, , 39F
11/29 11:24, 39F
推
11/29 11:29, , 40F
11/29 11:29, 40F
→
11/29 11:30, , 41F
11/29 11:30, 41F
不光是因為環境啦
C建立的library會比C++建的library用途更廣
所以才用C
FFI跟我講的東西不一樣吧?
我想要的就是用更簡潔的方式來維護一個C專案
POSIX沒關係啊,介紹一下這種高階語言吧
※ 編輯: eye5002003 (118.167.50.236), 11/29/2016 18:15:05
※ 編輯: eye5002003 (118.167.50.236), 11/29/2016 18:51:46
→
11/30 00:35, , 42F
11/30 00:35, 42F
→
11/30 00:42, , 43F
11/30 00:42, 43F
推
11/30 04:05, , 44F
11/30 04:05, 44F
→
11/30 04:10, , 45F
11/30 04:10, 45F
推
11/30 07:36, , 46F
11/30 07:36, 46F
推
11/30 22:52, , 47F
11/30 22:52, 47F
推
12/04 17:43, , 48F
12/04 17:43, 48F
→
12/04 17:45, , 49F
12/04 17:45, 49F
→
12/04 17:48, , 50F
12/04 17:48, 50F
→
12/04 17:49, , 51F
12/04 17:49, 51F
→
12/04 18:01, , 52F
12/04 18:01, 52F
→
12/04 18:03, , 53F
12/04 18:03, 53F
→
12/04 18:06, , 54F
12/04 18:06, 54F
→
12/04 18:09, , 55F
12/04 18:09, 55F
→
12/04 18:10, , 56F
12/04 18:10, 56F
→
12/04 18:24, , 57F
12/04 18:24, 57F
→
12/04 18:25, , 58F
12/04 18:25, 58F