2013-05-18 2 views
1

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

Я все еще проектирую проект.

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

СЕЙЧАС, это означало бы, что клиентская машина ДОЛЖНА ИМЕТЬ компилятор c/C++, установленный на нем.

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

Я изучал этот процесс, и, насколько мне известно, единственный способ скомпилировать код c/C++ с помощью инструмента визуальной студии, выполняет cl.exe из командной строки Visual Studio. Я нашел эту информацию здесь, в MSDN (article about how to manually compiling a c/c++ program)

Итак, мой первый вопрос: есть ли в USER версии .NET Framework (это означает, что у пользователя нет Visual Studio) есть компилятор c/C++? Если да, то то же самое включено в visual studio, cl.exe? Как я могу получить к нему доступ? Если нет, есть ли бесплатный компилятор WITHOUT IDE, который я могу включить в настройку моего переводчика?

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

+0

К счастью, похоже, что [компилятор псевдокода в C] (http://forum.pellesc.de/index.php?topic=3385.0) уже существует. –

ответ

0

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

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

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

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

+0

Вы ошибаетесь. .NET отправляет [CSharpCodeProvider] (http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx), который может это сделать. – Puppy

+0

Это не 'cl.exe' tho '. –

+0

Ах да, моя ошибка, я думал, что OP просит компилятор C#. – Puppy

0

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