NoName.Man
Best_ghostОбучите или покажите уже готовые результат, тогда посмотрим Это так мило. Я высказываю вслух свою идею, которой мне интересно заняться в качестве хобби, а мне неэксперт (который ещё утром не знал, что ИИ в этой области может, а что нет) с гордым видом - "вот когда ..., тогда и приходите". Приду, обязательно, да. Прибегу. Первым же делом.
У неэксперта ИИ уже год в продакте крутится, другое дело, что решает другие задачи, а не написание кода. Что касается написания кода, вы так и не ответили, как там с кодом на асм у ИИ работающие решения есть и если есть посмотреть на результаты можно?-)
Добавление от 10.01.2025 22:01:
Tourlenta
Достаточно. Блюпринт по железке, или там unreal engine 5, ему скармливаешь, он пишет. Другой вопрос, что это пока долго, дорого, и пишет кривовато, всё равно нужен понимающий человек для постпроверки, уточнений, дополнений. Но заставлять его быть компилятором пока ещё рано, хотя почему бы и нет, в будущем. Поглядим.
Решения, которые делают код на языках высокого уровня, который как минимум компилируется, я видел, а вот на том же асме нет, хотя асм попроще будет, первый шаг это рабочий код, оптимизации и компиляции это уже следующий. С учетом того, что в этой отрасли пока пост напишешь информация устареет, вполне возможно, что у меня устаревшая информация.
Добавление от 10.01.2025 22:14:
upd. Ладно, эксперимент признан удачным, собственно на опровержение моего же тезиса ушло 2 минуты. Мне было интересно, что люди выберут телеги гонять и кинутся ссылкой. Как и прогнозировалось телеги.
Код на асм от ИИsection .data
array db 1, 5, 7, 8, 9, 12, 333 ; массив для сортировки
array_length db 7 ; длина массива
section .text
global _start
_start:
mov ecx, [array_length] ; загрузить длину массива в ECX
outer_loop:
dec ecx ; уменьшить длину для внешнего цикла
mov ebx, 0 ; индекс для внутреннего цикла
mov edx, 0 ; флаг для обмена
inner_loop:
mov al, [array + ebx] ; загрузить текущее значение
mov bl, [array + ebx + 1] ; загрузить следующее значение
cmp al, bl ; сравнить текущий и следующее значение
jle no_swap ; если порядок верный, пропустить обмен
; обмен значениями
mov [array + ebx], bl ; сохранить большее значение на текущее место
mov [array + ebx + 1], al ; сохранить меньшее значение на следующее место
mov edx, 1 ; установить флаг обмена
no_swap:
inc ebx ; перейти к следующему элементу
cmp ebx, ecx ; проверить конец массива
jl inner_loop ; если еще не конец, продолжить
; проверить, был ли обмен
test edx, edx ; проверить флаг обмена
jnz outer_loop ; если обмен был, повторить процесс
; Завершение программы
mov eax, 1 ; системный вызов для завершения программы
xor ebx, ebx ; код завершения 0
int 0x80 ; вызвать ядро