Niech mnie ktoś oświeci, jak programem utworzyć inny program. Tzn mam coś na kształt kreatora wybieram se opcje (wg nich wstawiam poszczególne partie kodu) i po kliknięciu przycisku tworzę swój program. Tylko pytanie jak to skompilować ? Jest coś gotowego ? (bo ja za tępy jestem by napisać kompilator) Niech mnie ktoś oświeci bo w google wiadomo co można znaleźć po wpisaniu kompilacja etc
A z jakiego środowiska programistycznego korzystasz (IDE)?
Jakim programem robić inne programy… “programów” tego typu jest dużo, kwestia tego, w jakim języku chcesz potem “wstawiać” poszczególne partie kodu
języków też jest dużo jak kozich bobków ;p
Najlepiej by było c#, ew c++ ogólnie dobrze by było by funkcje działały w visualu ms’a. Ogólnie mój zamysł to coś w stylu w/w kreatora. Kod mogę se np do txt zapisać, ogólne pytanie. Jak skompilować coś mając to w zmiennej
Przecież Visual Studio ma kompilator
Ja chce odpalić kod w programie, który piszę ja. Coś w stylu wybieram opcje klikam submit i uzyskuję gotowy plik. Ja kompiluję swój program w którym po ustawieniu opcji i kliknięciu submit pojawia się nowy program.
Do każdego języka .NET (C#, VB .NET, F#, itd.) dołączony jest osobny kompilator (przykładowo dla C# jest to csc http://msdn.microsoft.com/en-us/library/78f4aasd.aspx). W swoim programie będziesz po prostu musiał odpalić jeden z tych kompilatorów z odpowiednimi parametrami. To samo robi każde IDE.
Możesz użyć tzw. silnika skryptów. Nie wiem czy MS pomyślał o czymś takim w którymś ze swoich monopolistycznych produktów, ale w Javie i Qt (c++) jest w standardzie (w samym C++ można użyć np. CPythona, ale łatwe to to nie jest) silnik ECMA Script (jego dialektem są m.in. JavaScript i ActionScript).
Ale gotowego natywnego pliku wykonywalnego w ten sposób nie otrzymasz, jeśli nie dostarczysz kompilatora do swojego programu (a zwykle są ciężkie).
W przypadku Javy można zrobić generator .jar, który wsadza tam wcześniej utworzony manifest, skompilowaną klasę i napisany skrypt, który zostanie wczytany i wykonany przez klasę główną. Wtedy wystarczy tylko JRE bez JDK.
Mógłbym prosić listę monopolistycznych produktów MS z dziedziny tworzenia oprogramowania?
Bo może póki Oracle ma większość rynku, to będziemy mówili o monopolu Oracle, ok?
drobok , zupełnie nie rozumiem o co chodzi… Chcesz skompilować kod C#, który będziesz miał zapisany w pliku txt?
Ogólnie to myślałem nad czymś w stylu kreatora programów. Czyt musiałbym skompilować program z zmiennej etc. Dzięki matzu, mam to co chciałem
Nie trzeba wywoływać zewnętrznego kompilatora, można skompilować w locie, np.:
using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
namespace DynamicCompilation
{
class Program
{
static void Main(string[] args)
{
string source = @"
namespace MN
{
public class MC
{
public static double MM()
{
System.Windows.Forms.MessageBox.Show(""Komunikat!"", ""Tytuł"");
return 5;
}
}
}";
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.ReferencedAssemblies.Add("System.dll");
parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
CompilerResults cResults = new CSharpCodeProvider().CompileAssemblyFromSource(parameters, source);
double result = (double)cResults.CompiledAssembly.GetType("MN.MC").GetMethod("MM").Invoke(null, null);
Console.WriteLine("Metoda zwróciła: {0}", result);
Console.ReadLine();
}
}
}