Лидеры
Популярный контент
Показан контент с высокой репутацией 01.08.2021 в Сообщения
-
1 баллОписание: Требуется программа на выведения топ генов в растениях, в моде ic2. - программа для робота Награда: я не играю на проекте так-же денежной наградой не могу обеспечить, но могу сделать на заказ 3D модельку в Magic Voxel. Оборудование: сам робот , и инструменты с которыми он будет работать Требования к ПО: когда растение было посажено, через время оно вырастает. робот анализирует это растение и если оно подойдёт для выведения более лучших генов то робот его пересаживает за место самого слабого растения по генам. Ссылка с гайдом как выводить кропсы: https://clck.ru/TrgfE - ссылку я укоротил тк она очень большая Связь: дискорд: бонго#6666
-
1 баллПроверь конфиг, правильные ли адреса и порты там указаны. И скинь его(конфиг)
-
1 баллДа, рабочая штука. Еще MIPS и DCPU-16 попадались, но один удалили, другой не собирается.
-
1 баллМногие, кто играл в майн с древних времен, помнят, что был такой замечательный мод RedPower2. Помимо всяких крутых механизмов там были компьютеры, работающие на forth-системе. Функционал, правда не богатый, можно было только мигать цветными кабелями. Мод развития не получил, автор пропал. Потом был мод NedoComputers, но он тоже не долго прожил и особого распространения не получил. Есть идея, написать виртуальную машину для OpenComputers. Язык Forth невероятно примитивен, синтаксис простой и лаконичный, базовая система легко уместится на EEPROM. Но есть пара вопросов в реализации. Так как придется писать интерпретатор/компилятор на языке высокого уровня, надо чем-то пожертвовать или отойти от стандарта. Язык плотно работает со стеком. Есть стек данных и стек возвратов (второй пока не трогаем). Адресация 16 бит, следовательно, диапазон памяти = 64КБ. Отсюда имеем первую проблему, придется дробить float64 и имитировать 16 битные числа. Можно не дробить, памяти у нас более чем достаточно. Хотя, в более новых стандартах, реализована работа с 32 и 64 битными числами, написанная на самом Форте. Можно это обыграть, используя стандартный функционал Lua. Еще из-за особенностей выравнивания памяти, у чисел с плавающей точкой отдельный стек и отдельная адресация. Это можно тоже игнорировать и запихнуть float'ы в стек данных (а может и нельзя, тут пока не понятно). Вообще, все это описывается самим Фортом, но имея уже готовый интерфейс к математическому сопроцессору, было бы глупо писать всякие sqrt/sin/tanh жонглированием на стеке. Еще стандарт ANS94 требует много лишнего, вроде доступа к ассемблеру, своеобразной работы с железом и мусорных функций. Поэтому, лучше видится стандарт FORTH-83, он описывает язык очень обобщенно. Только немного расширить его до реалий опенкомпов. Ссылки: стандарт 83 года FORTH-83, слова стандарт 94 года ANS94, слова краткое введение в синтаксис
-
1 балл
-
1 баллЧем больше битов в хэше, тем меньше вероятность коллизии. А еще можно все функции поместить в список, тогда индекс списка можно будет юзать в качестве хэша и гарантировано без коллизий
-
1 баллБыло бы интересно сократить вызов методов компонентов, а то они слишком много места занимают. Недавно возникла идея сделать своеобразный конвейер байткода, правда пока кроме вызовов функций ничего не придумал. Зато алгоритм хеширования вроде-бы годный. Вот общая идея: Есть один токен для записи аргументов и один для вызова. Интерпретатор идет по байткоду и если встречает токен записи, то записывает следующие токены в таблицу аргументов, когда встречает токен вызова, находит по его хешу функцию, и передает ей аргументы. Выхлоп функции передается в переменную с таким же хешем. А вот алгоритм хеширования: Берется длина строки, отсекается до 4 бита. Четные байты сдвигаются на 2 бита влево, нечетные на 7, и ксорятся в фиксированную 10 битную последовательность. Первый бит последнего символа сдвигается на оставшийся свободный и все это объединяется. Получается хеш на 15 бит. x = 0 for i = 1, #str do b = str:sub(i, i):byte() & 63 if i % 2 == 0 then x = x ~ b << 2 else x = x ~ b << 7 end end result = (#str & 15) | x | ((str:sub(-1, -1):byte() & 1) << 14) Наверно, можно было это сделать как-то умней, но лень анализировать статистику распределения битов в названиях. Проверил на названиях основных компонентов и их методов, коллизий не обнаружил.
-
1 баллС реализацией беда, прям кошмар-ужас-ужас. Наивные люди полагают, что FORTH это язык, но в действительности это идея интерпретатора. Такая себе сферическая в вакууме идея и ничего больше. Ну и стек еще, но это просто традиция. Сначала пытался все реализовать как деды завещали, но при помощи Lua. Споткнулся на оптимизации. FORTH по идее работает настолько близко к железу, что для него даже ассемблер не нужен, достаточно написать транслятор, а остальное делается самим Фортом (сверху приправляется ассемблерным языком, написанным на Форте, но это по желанию). Lua в качестве ассемблера не годится, слишком высокоуровневый. Есть фортоподобные поделия, реализованные на языках высокого уровня, но для знакомого с традиционными реализациями, они работают крайне странно и необычно. По факту там только игры со стеком. В моем понимании, Форт-программист имеет доступ ко всей системе. Это значит, что форт-система может модифицировать сама себя, есть доступ к входным и выходным данным, к стекам и всей памяти. В связи с этим, я начал делать прослойку между Lua и FORTH в виде процессора виртуальной машины. Немного увлекшись реализовал эмулятор DCPU-16. Но для DCPU-16 уже есть FORTH, да и прослойка получается слишком жирная. Изначальная попытка написать FORTH на Lua у меня сильно конфликтовала с желанием все оптимизировать. Дошло до того, что слова Форта, которые должны работать шитым кодом транслировались в Lua-код, код загружался как обычные функции, а на них ссылаются слова. Я решил, что это мрак какой-то и забросил. Но добавить Форт в опенкомпы все-таки очень хочется. Начал изучать наследников и вообще все фортоподобные языки (даже зачерпнул немного стековой эзотерики). Их уже больше сотни, а если учитывать реализации под конкретные архитектуры, то их несколько сотен наберется. Помимо основной идеи голого интерпретатора есть еще много всего интересного и полезного, но никаких определенных тенденций нет, полный хаос. Добрался до стековых процессоров, в основном они не очень логичные, даже сомнительные, но для реализации на FPGA вполне годятся. И вот тут мне очень понравился процессор J1, он подкупает своей простотой и емкостью инструкций (хотя первая версия очень избыточна и не особо продуманна, есть возможность расширить набор инструкций, что мне очень пригодится). Автор его использует довольно странно, вместо традиционной форт-системы он сделал так, что форт-слова определяются как макросы ассемблера. От форта там название и синтаксис, но на самом деле только ассемблер и макросы, ловко спрятанные под синтаксисом транслятора. Я же решил использовать архитектуру J1 в более традиционной манере, быстро набросал ядро, ассемблер, потом на ассемблере разработаю Форт-транслятор. Для работы с прерываниями надо будет прокинуть ввод-вывод в память, чтобы можно было работать с любыми устройствами опенкомпов. Само-собой надо расширить набор инструкций для превращения сигналов в прерывания, доступа к большему объему памяти и большему количеству операций. Но это еще не все. Понимание недостаточной оптимальности и избыточности заставляет создать еще один вариант, более быстрый и эффективный. Это будет компиляция интересных идей наследников Форта при высокоуровневой реализации, вроде Cat или Joy. Заодно выкинуть весь легаси-мусор, который даже в стандарты засунули. Получается два Форта: Традиционный, совместимый, на виртуальном процессоре J1. Мунспик. Быстрый, удобный, максимально приближенный к реалиям опенкомпов. Совсем не похожий на древний Форт83.
-
1 балл
-
1 балл@NEO порог вхождения не больше чем в Луа. Всё дело, с какой стороны входить. Да, согласен, слов порядок странный довольно. Но всё это дело привычки. Для программирования на Форте разбираться с памятью и регистрами совсем не обязательно. Стек нужен, но что с ним разбираться. Стек он и в Африке стек. Эх, где мои семнадцать лет? Свой первый компилятор я написал на бэйсике. Было это что-то фортоподобное, хотя о Форте я тогда и слыхом не слыхивал.
-
1 баллПосмотрел язык, порог вхождения по сравнению с луа, большой. Если на луа можно практически сразу кодить робота шахтёра, на форте придётся разобраться с памятью, регистрами, стеком, научится отлаживать всё это. Нужен хороший отладчик.
-
1 баллСамостоятельная система. Можно было бы сделать, чтобы она грузилась Lua BIOS, как обычная ось. Если уместить ядро на EEPROM, то там будет только базовый функционал, клавиатура и дисплей. Дополнительные блоки слов, текстовый редактор и драйвера надо будет поставлять отдельно.
-
1 баллТак это будет нашлепка на OpenOS или самостоятельная Forth-система, стартующая из Eeprom?
-
1 баллВ процессе. Скоро будет на что посмотреть. Долго курил маны и спецификации, чтобы выяснить одну вещь - каждый пишет Форт так, как хочет. Сейчас набиваю базовые команды, потом сращиваю ядро с опенкомпом. Затем надо тесты написать, или выдрать откуда-нибудь. Как будет основной функционал, можно будет думать над интерфейсами к устройствам. Прокинуть древовидное API через память или имитацию прерываний - тот еще квест.
-
1 баллУныло или не уныло, Болтовня ничего не стоит. Покажите мне код. Ради интереса можно закодить интерпретатор, как сказал @eu_tomat P.S тем более странный он.
-
1 баллЕсли бы все так уныло размышляли, как товарищ NEO, не было бы ни NES эмуляторов, ни JVM с майнкрафтом. Вообще, вряд-ли что-то бы было. Сидели б на жердочках и хлебали пиво лаптями.
-
1 балл
-
1 баллМожно и вселенную создать, но какие будут трудозатраты и реально ли вообще создать за человеческую жизнь её?
-
1 балл@NEO кто-то ведь разработал tic, 65el02, опенкомпы, компкрафт и т.п. Если человеку интересно - сделает любое извращение)
-
1 балл
-
1 баллТо же самое и с ассемблером можно сделать, как ни странно. Хотя учитывая синхронизацию машинного кода и мира майна задержки обращения к миру будут теми же. Но опять же тут приходят на помощь всякие буферы команд и прочее. Всё зависит от разработчика, в общем.
-
1 баллСложно сказать, но ассемблер будет исполняться жавой вероятно всего, а луавм - это динамически линкуемая бибиотека из нативного машинного кода.
-
1 баллНу смотри, у тебя есть 2 машины с одинаковыми характеристиками: 1мгц проц, 64кб оперативки, 128кб хранилище. На одной машине крутятся машинные команды, а на другой - луавм. Какую из машин лучше выбрать в плане производительности и затрат ресурсов? Если хочется удобный код, например луа - ничего не мешает закинуть на первую машину луавм, но наоборот сделать нельзя. Это порой выводит из колеи - когда вроде есть возможность сделать лучше и быстрее, но архитектура не позволяет.
-
1 балл
-
1 баллЯ под другую платформу интересовался, про портирование на луа не было предложений.
-
1 баллЭм. Сам предлагал, а теперь смысл ищешь. Вот у нас есть CHIP-8, можно много готовых игр на него добыть. Хотя, это такой себе процессор и игры там соответствующие. Вроде-бы был Z80, (не, это в ComputerCraft было и вроде не работает) там игр и программ уже готовых просто бездна. Хотя, в основном все на васике, поэтому тормозить будет жутко. А Forth я предложил из-за его простоты во всем. Например, надо написать какую-нибудь копалку/сортировку, чтобы она влезла на EEPROM. Lua код вкорячить туда очень больно, хвосты из "end end end end ...." дают ощущение, что это Lisp переросток. Хотя, я подозреваю, что интерпретатор форта тоже не годится, надо его запихивать в процессор или делать движок луа-макросов в целях сокращения пространства. Но просто ради фана интересно сделать в опенкомпах экосистему на другом языке.
-
1 балл
-
1 баллв OC вроде бы реализовывали архитектуру процессора с машинными командами, только смысл с этого? Луа такой же тьюринг полный, как и "ассемблер", но на нёй легче писать и многие примитивные вещи реализованы.
-
1 балл@Doob да уже есть вроде компилятор, судя по тому что драйвера и программы на си написаны: https://github.com/Magneticraft-Team/Computer Там где-то в доках было написано что используют gcc mips, процессор R3000.
-
1 баллНу дык. Помочь надо, чувак в одиночку мод делает. Процессор есть, если набор команд обычный, то можно С компилятор собрать, а там уже и на Луну можно собираться.
-
1 балл@Doob о, магнетикрафт уже допилил компы свои? Это интересно, да ещё и на ассемблере, пойду гляну чего там есть. Ха-ха: Что я могу сделать с компьютером сейчас? Ничего. Пока ничего особо интересного из периферии там нет. Есть флоппик, сетевая карта, терминал (монитором язык не поворачивается называть), и робот. Всё ещё ожидание.
-
1 баллДа, RetroComputers довольно точно перенес компьютерный функционал из RP2. И Forth там больше на себя похож. Еще есть мод MagnetiCraft, и там тоже есть компы, и роботы есть. Компьютер работает на виртуальном MIPS процессоре, для этих компов уже есть системы на ассемблере, BASIC, Lisp и Forth.
-
1 баллЕсть ещё на 1.12 RetroComputers, который скопировал архитектуру 65el02. https://www.curseforge.com/minecraft/mc-mods/retrocomputers Правда на серверах я его особо не видел, разве что в сборках каких-то.
-
1 балл
-
1 баллНа самом деле там можно было запилить автокрафт с системой хранения, правда скорость оставляла желать лучшего. Вот если на ассемблере написать... Но переписывать не вижу особого смысла, ибо зачем ограничивать луа фортом... Разве что по фану кабелями помигать.
-
1 баллА вот тут самое интересное, компы в RedPower это виртуальный процессор 6502, а уже на ассемблере к этому процессору был реализован Forth. Так что не нам говорить о нагрузке. Там еще кто-то писал ось на этом ассемблере, чтобы тики редстоуна не пропускались.
-
1 баллForth хорош своей нетребовательностью к ресурсам. И если бы благодаря ему можно было бы создавать более эффективные программы для OpenComputers, то его стоило бы реализовать. Делать это на Lua, наверное, можно, но лишь как упражнение в программировании. При большом желании на Lua можно написать и ассемблер, и JVM. Но вряд ли кто-то будет этим пользоваться. Мы в OpenComputers не особо используем даже MoonScript, облегчающий кодинг. А реализованный на Lua Forth и кодинг не облегчит и нагрузку на сервер не снизит. Пожалуй, можно будет поностальгировать пару дней. Наверное, у многих из нас первым компьютером в Майнкрафте был комп из RedPower2. Шикарный был мод.
-
0 балловДа, мы все знаем, что OpenComputers гораздо более стабильный, безопасный и продвинутый, чем ComputerCraft (который к тому же перестал поддерживаться разработчиком). Однако я до сих пор считаю, что ComputerCraft *гораздо* лучше именно как мод для программирования. И вот почему: Я впервые начал программировать именно в майнкрафте. Смотрел те самые туториалы на ютубе от 1Ridav, даже конспектировал в блокноте. Научиться программировать тогда было очень просто. Посмотрел пару туториалов, зашел на сервер, скрафтил комп и вуаля - сидишь строчишь свою библиотеку создания графических кнопок или ещё что-нибудь. Здорово. А главное - другие игроки могут видеть и то, как ты программируешь, и работу твоей программы. Для начинающих это был действительно самый лучший способ научиться программировать. С эпохой OpenComputers всё изменилось. Теперь, чтобы добраться до рабочего терминала, надо изучить все про сборку компьютера, чуть ли не пройти игру наполовину, чтобы насобирать ресурсов, правильно всё собрать и узнать, что, вообще говоря, тебе нужно питание. И ты идёшь и трахаешься с каким-нибудь industrial craft 2 ещё несколько часов вместо того, чтобы уже писать код. Более того. Уже предвидя этот путь, ты можешь начать развиваться, насобирать ресурсов итп, а потом узнать, что на сервере усложненный крафт компьютеров и всего сопутствующего (основанно на личном опыте: на mcskill Hi-Tech 3 нет GregTech, зато стоит какой-то мод, усложняющий создание компьютера до боли). Честно говоря, после такого опускаются руки. ComputerCraft был хорош именно своей доступностью. Любой мог начать писать свою программу, создав компьютер из говна и палок за пару минут. А интерес новичка держится только тогда, когда он видит наглядный результат своей работы. Новичок не хочет потратить миллион часов на изучение сборки компьютера итп. Он хочет хоп и окрасить пиксели экрана в розовый. Сборка компьютера, ее усложнение, бОльшие требования - это достаточно интересный геймплей, но абсолютно бесполезный, запутанный и мешающий в плане обучения программированию. Я отнюдь не хочу принизить мод OpenComputers, это прекрасный мод. Но, заменив собой ComputerCraft, он убил поток свежей крови на этот форум да и вообще в сообщество программистов. К сожалению, программирование в майнкрафте превратилось из общедоступного обучающего инструмента в область для гиков, которые и так уже все знают и умеют.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
