Перевод псевдокода

Я начал работать несколько часов назад над транслятором псевдокода, который будет переводить определенный псевдокод, касающийся работы со стеками и очередями, в исполняемый код на языке c / c ++. У переводчика есть учебные пропусы.

Я все еще разрабатываю проект.

Я начал думать о том, как это можно сделать; Я подумал, что, возможно, лучший способ сделать это, во-первых, проанализировать псевдокод, изменить его, чтобы сделать его кодом c / c ++, а затем скомпилировать его, чтобы сделать его исполняемым.

ТЕПЕРЬ это будет означать, что на клиентской машине должен быть установлен компилятор c / c ++.

Как я работаю с .NET предложениями ( System.Collections.Generic.Queue(Of T) а также System.Collections.Generic.Stack(Of T) ), Я думал, что решением этой проблемы будет использование того же компилятора Visual Studio, который используется для компиляции кода c / c ++.

Я изучал этот процесс, и, насколько мне известно, единственный способ компилировать код на языке c / c ++ с помощью инструмента Visual Studio — это запуск cl.exe из командной строки Visual Studio. Я нашел эту информацию здесь, на MSDN (статья о том, как вручную компилировать программу c / c ++)

Итак, мой первый вопрос: включает ли в себя ПОЛЬЗОВАТЕЛЬСКАЯ версия .NET Framework (это означает, что у пользователя НЕТ Visual Studio) компилятор c / c ++? Если да, то входит ли это в Visual Studio, cl.exe? Как я могу получить к нему доступ? Если нет, есть ли бесплатный компилятор БЕЗ IDE, который я могу включить в настройки моего переводчика?

Обратите внимание, что здесь мы говорим о преобразовании строки псевдокода в исполняемый код на языке c / c ++, выходная строка ДОЛЖНА БЫТЬ Скомпилирована с ПОЛЬЗОВАТЕЛЬСКОГО ПК, вот о чем идет речь в проекте.

2

Решение

В инфраструктуру .Net не включен компилятор — он предназначен для запуска двоичных файлов, созданных компилятором.

Можно получить компилятор бесплатно, например, по схеме бесплатной загрузки Visual Studio Express. На это есть некоторые лицензионные ограничения («без коммерческого использования», если я правильно помню — это будет означать, что если один из ваших клиентов использует ваш продукт, они не смогут продать полученный код, который они создали [и все еще будут в рамках контракта). с MS]). К сожалению, это не «без IDE», но компилятор, который является частью загрузки, можно использовать без IDE, поэтому, если «без IDE» это просто, что вы хотите иметь возможность запустить компилятор с вашей программой, то он буду работать.

Если вам действительно нужен пакет, который содержит компилятор (в варианте .Net), но не содержит кода IDE, тогда вам придется найти другое решение — а для .Net я не уверен, что он есть. DDK (Device Driver Kit) содержит встроенные компиляторы C и C ++. Но, насколько я понимаю, он не будет генерировать код .Net [я могу ошибаться].

Изменить: кажется, что если вы пишете свой собственный код, вы можете скомпилировать его с помощью CSharpCodeProvider — однако это не то же самое, что компилятор командной строки cl.exe,

0

Другие решения

Длинное, короткое и уродливое — «нет». Единственный C ++ -компилятор, удаленно подходящий для включения в качестве библиотеки, — это Clang, с ним можно работать бесплатно и не слишком плохо, вам придется написать собственную привязку .NET, и не забывайте получать удовольствие от предоставления собственного компоновщика. и stdlib.

0

По вопросам рекламы [email protected]