Какой альтернативный синтаксис существует для C/С++? (думаю, SPECS или Mirah)
Я задавался вопросом, есть ли более простой или более мощный синтаксис для C или С++. Я уже сталкивался с SPECS. Это альтернативный синтаксис для С++. Но есть ли какие-либо другие, и как насчет C?
Он также может быть своего рода генератором кода, так что такие вещи, как функторы, могут быть определены меньше словесно. Я предполагаю, что это может быть сделано как генератор кода, который компилируется в код C или С++, который очень похож на код, который вы написали в альтернативном синтаксисе.
Mirah - пример этого для Java.
В идеале я хотел бы написать C в Go как синтаксис. Мне нравится, как они фиксировали коммутационный футляр, и вообще делали все гораздо менее подробным.
Ответы
Ответ 1
Единственным универсальным инструментом, о котором я знаю, является Lazy С++, который позволяет вам создать один исходный файл .lzz
из который может генерировать файлы .h
и .cpp
.
Существует также множество подходов к созданию кода для С++. (Например, см. Cog, Pump, или Список Википедии.) Это не полноценные альтернативные синтаксисы, но они могут помочь с определенными категориями синтаксиса (например, автоматически генерировать шаблоны от 1 до N аргументов, чтобы обойти отсутствие вариативных шаблонов).
Ответ 2
#define BEGIN {
#define END }
Нет! Просто скажите NO!
Ответ 3
Вместо изменения синтаксиса рассмотрите изменение абстракции: Увеличьте свою абстракцию с помощью настраиваемого DSL. Для достижения оптимальной производительности потребуется поддержка инструмента.
Если ваша цель - упрощение, легкий подход к моделированию, основанный на тексте (например, XText), основан на графике (например, MetaEdit +) или на основе дерева (например AtomWeaver) удалите некоторую сложность проекта, упростив решение.
Ответ 4
Если это только синтаксис, который вам нужен, почему вы не можете определить свою собственную, как тривиальную цепочку препроцессора- > парсер- > C-pretty-printer? Это будет не более чем семантически доступный препроцессор, что-то вроде стиля CamlP4, но для C. Никто, но вы знаете, какой синтаксис вы найдете подходящим, поэтому его реализация полностью зависит от вас.
Ответ 5
Мне не кажется, что SPECS на самом деле С++ больше, мне, конечно, было бы трудно прочитать такой код (по крайней мере изначально).
Вы должны выбрать язык, основанный на ваших потребностях, а не выбрать конкретный язык, а затем изменить его в соответствии с тем, что вы хотите сделать.
Если вы хотите запрограммировать Go, тогда запрограммируйте в Go, не пытайтесь писать C в синтаксисе Go-like, так как это просто затруднит для любого, кто действительно знает C, чтобы прочитать ваш код.