Program do tworzenia programów

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 :slight_smile:

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 :slight_smile:

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 :slight_smile:

Przecież Visual Studio ma kompilator :expressionless:

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.

@drobok

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 :slight_smile:

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();

        }

    }

}