• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

C++ Custom JVM

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
4 Авг 2024
Сообщения
132
Реакции
4
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я это делал за 5 минут.


Custom JVM:
Expand Collapse Copy
#include <iostream>
#include <stack>
#include <map>
#include <vector>
#include <string>
#include <stdexcept>

class ClassObject {
private:
    std::string name;
    std::map<std::string, std::vector<int>> methods;
public:
    ClassObject(const std::string& name) : name(name) {}
    void addMethod(const std::string& methodName, const std::vector<int>& bytecode) {
        methods[methodName] = bytecode;
    }
    std::vector<int> getMethod(const std::string& methodName) {
        return methods[methodName];
    }
};

class SimpleJVM {
private:
    std::stack<int> stack;
    std::map<std::string, ClassObject*> classLoader;
public:
    SimpleJVM() {}
    ~SimpleJVM() {
        for (auto& entry : classLoader) {
            delete entry.second;
        }
    }
    ClassObject* loadClass(const std::string& className) {
        if (classLoader.find(className) != classLoader.end()) {
            return classLoader[className];
        }
        ClassObject* cls = new ClassObject(className);
        cls->addMethod("main", {0x10, 0x01, 0x15, 0x00});
        classLoader[className] = cls;
        return cls;
    }
    void execute(const std::string& className) {
        ClassObject* cls = loadClass(className);
        std::vector<int> method = cls->getMethod("main");
        for (int instr : method) {
            switch(instr) {
                case 0x10:
                    stack.push(42);
                    break;
                case 0x01:
                    std::cout << stack.top() << std::endl;
                    stack.pop();
                    break;
                case 0x15:
                    stack.push(100);
                    break;
                case 0x00:
                    return;
                default:
                    throw std::runtime_error("Unknown instruction");
            }
        }
    }
};

int main() {
    SimpleJVM jvm;
    jvm.execute("MyClass");
}
Код:
Expand Collapse Copy
 
ахахах ебать это что
 
Я тебя понял
 
Я это делал за 5 минут.


Custom JVM:
Expand Collapse Copy
#include <iostream>
#include <stack>
#include <map>
#include <vector>
#include <string>
#include <stdexcept>

class ClassObject {
private:
    std::string name;
    std::map<std::string, std::vector<int>> methods;
public:
    ClassObject(const std::string& name) : name(name) {}
    void addMethod(const std::string& methodName, const std::vector<int>& bytecode) {
        methods[methodName] = bytecode;
    }
    std::vector<int> getMethod(const std::string& methodName) {
        return methods[methodName];
    }
};

class SimpleJVM {
private:
    std::stack<int> stack;
    std::map<std::string, ClassObject*> classLoader;
public:
    SimpleJVM() {}
    ~SimpleJVM() {
        for (auto& entry : classLoader) {
            delete entry.second;
        }
    }
    ClassObject* loadClass(const std::string& className) {
        if (classLoader.find(className) != classLoader.end()) {
            return classLoader[className];
        }
        ClassObject* cls = new ClassObject(className);
        cls->addMethod("main", {0x10, 0x01, 0x15, 0x00});
        classLoader[className] = cls;
        return cls;
    }
    void execute(const std::string& className) {
        ClassObject* cls = loadClass(className);
        std::vector<int> method = cls->getMethod("main");
        for (int instr : method) {
            switch(instr) {
                case 0x10:
                    stack.push(42);
                    break;
                case 0x01:
                    std::cout << stack.top() << std::endl;
                    stack.pop();
                    break;
                case 0x15:
                    stack.push(100);
                    break;
                case 0x00:
                    return;
                default:
                    throw std::runtime_error("Unknown instruction");
            }
        }
    }
};

int main() {
    SimpleJVM jvm;
    jvm.execute("MyClass");
}
Код:
Expand Collapse Copy
за 5 мин пойдет но кучу траблов с таким кодом

upd: я как понимаю ты просто скопировал из этой темы https://yougame.biz/threads/339212/
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я это делал за 5 минут.


Custom JVM:
Expand Collapse Copy
#include <iostream>
#include <stack>
#include <map>
#include <vector>
#include <string>
#include <stdexcept>

class ClassObject {
private:
    std::string name;
    std::map<std::string, std::vector<int>> methods;
public:
    ClassObject(const std::string& name) : name(name) {}
    void addMethod(const std::string& methodName, const std::vector<int>& bytecode) {
        methods[methodName] = bytecode;
    }
    std::vector<int> getMethod(const std::string& methodName) {
        return methods[methodName];
    }
};

class SimpleJVM {
private:
    std::stack<int> stack;
    std::map<std::string, ClassObject*> classLoader;
public:
    SimpleJVM() {}
    ~SimpleJVM() {
        for (auto& entry : classLoader) {
            delete entry.second;
        }
    }
    ClassObject* loadClass(const std::string& className) {
        if (classLoader.find(className) != classLoader.end()) {
            return classLoader[className];
        }
        ClassObject* cls = new ClassObject(className);
        cls->addMethod("main", {0x10, 0x01, 0x15, 0x00});
        classLoader[className] = cls;
        return cls;
    }
    void execute(const std::string& className) {
        ClassObject* cls = loadClass(className);
        std::vector<int> method = cls->getMethod("main");
        for (int instr : method) {
            switch(instr) {
                case 0x10:
                    stack.push(42);
                    break;
                case 0x01:
                    std::cout << stack.top() << std::endl;
                    stack.pop();
                    break;
                case 0x15:
                    stack.push(100);
                    break;
                case 0x00:
                    return;
                default:
                    throw std::runtime_error("Unknown instruction");
            }
        }
    }
};

int main() {
    SimpleJVM jvm;
    jvm.execute("MyClass");
}
Код:
Expand Collapse Copy
мерка, что это блять такое
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я это делал за 5 минут.


Custom JVM:
Expand Collapse Copy
#include <iostream>
#include <stack>
#include <map>
#include <vector>
#include <string>
#include <stdexcept>

class ClassObject {
private:
    std::string name;
    std::map<std::string, std::vector<int>> methods;
public:
    ClassObject(const std::string& name) : name(name) {}
    void addMethod(const std::string& methodName, const std::vector<int>& bytecode) {
        methods[methodName] = bytecode;
    }
    std::vector<int> getMethod(const std::string& methodName) {
        return methods[methodName];
    }
};

class SimpleJVM {
private:
    std::stack<int> stack;
    std::map<std::string, ClassObject*> classLoader;
public:
    SimpleJVM() {}
    ~SimpleJVM() {
        for (auto& entry : classLoader) {
            delete entry.second;
        }
    }
    ClassObject* loadClass(const std::string& className) {
        if (classLoader.find(className) != classLoader.end()) {
            return classLoader[className];
        }
        ClassObject* cls = new ClassObject(className);
        cls->addMethod("main", {0x10, 0x01, 0x15, 0x00});
        classLoader[className] = cls;
        return cls;
    }
    void execute(const std::string& className) {
        ClassObject* cls = loadClass(className);
        std::vector<int> method = cls->getMethod("main");
        for (int instr : method) {
            switch(instr) {
                case 0x10:
                    stack.push(42);
                    break;
                case 0x01:
                    std::cout << stack.top() << std::endl;
                    stack.pop();
                    break;
                case 0x15:
                    stack.push(100);
                    break;
                case 0x00:
                    return;
                default:
                    throw std::runtime_error("Unknown instruction");
            }
        }
    }
};

int main() {
    SimpleJVM jvm;
    jvm.execute("MyClass");
}
Код:
Expand Collapse Copy
может просто CustomVM а не JVM?
 
Хуйня какая-то
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я это делал за 5 минут.


Custom JVM:
Expand Collapse Copy
#include <iostream>
#include <stack>
#include <map>
#include <vector>
#include <string>
#include <stdexcept>

class ClassObject {
private:
    std::string name;
    std::map<std::string, std::vector<int>> methods;
public:
    ClassObject(const std::string& name) : name(name) {}
    void addMethod(const std::string& methodName, const std::vector<int>& bytecode) {
        methods[methodName] = bytecode;
    }
    std::vector<int> getMethod(const std::string& methodName) {
        return methods[methodName];
    }
};

class SimpleJVM {
private:
    std::stack<int> stack;
    std::map<std::string, ClassObject*> classLoader;
public:
    SimpleJVM() {}
    ~SimpleJVM() {
        for (auto& entry : classLoader) {
            delete entry.second;
        }
    }
    ClassObject* loadClass(const std::string& className) {
        if (classLoader.find(className) != classLoader.end()) {
            return classLoader[className];
        }
        ClassObject* cls = new ClassObject(className);
        cls->addMethod("main", {0x10, 0x01, 0x15, 0x00});
        classLoader[className] = cls;
        return cls;
    }
    void execute(const std::string& className) {
        ClassObject* cls = loadClass(className);
        std::vector<int> method = cls->getMethod("main");
        for (int instr : method) {
            switch(instr) {
                case 0x10:
                    stack.push(42);
                    break;
                case 0x01:
                    std::cout << stack.top() << std::endl;
                    stack.pop();
                    break;
                case 0x15:
                    stack.push(100);
                    break;
                case 0x00:
                    return;
                default:
                    throw std::runtime_error("Unknown instruction");
            }
        }
    }
};

int main() {
    SimpleJVM jvm;
    jvm.execute("MyClass");
}
Код:
Expand Collapse Copy
это чуть чуть не жвм
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу