LINUX.ORG.RU

История изменений

Исправление SZT, (текущая версия) :

Вот определение с википедии

Искусственный интеллект - свойство интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека.

Когда мы на высокоуровевых языках оперируем абстракциями, мы обычно не задумываемся, как именно компилятор или интерпретатор будет эти абстракции эффективно транслировать на машинный уровень. А «механически» оттранслировать их не получается, как показывает практика. Да что там, даже Си компиляторы порой выдают чепуху, если почитать код на ассемблере, что уж говорить о высокоуровневых языках.

Или вот представь что у тебя есть некий высокоуровневый язык с jit eval-ом. Ты сделал консольный калькулятор. Пользователь вводит

> f1(x) = x^3;
и у тебя в программе образовалась некая функция f1, принимающая x и считающая по формуле. Чтобы такое сделать, необходимо распарсить ввод пользователя, скомпилировать некую мини-функцию, и чтобы потом ее можно было вызывать, например так:
> f1(3);
< 27
Что тут можно сделать с высокоуровневым языком, чтобы это все быстро работало? Можно переводить f1(x) = x^3 в некий код на твоем высокоуровневом ЯП, потом компилировать его, и вызывать в случае надобности. Но тут возникает сложность - надо для этого тащить целый компилятор в рантайм. А это попросту глупо во многих случаях. И кроме того, целый компилятор будет слишком долго это компилировать т.к. он для более общих случаев предназначен, а не только для компиляции неких формул. А если взять тот же Си, я могу написать минималистичный JIT который бы непосредственно выдавал мне код функции в машинных кодах, и писать его в некую исполняемую область памяти. Потом вызывать в случае чего. Это будет значительно быстрее.

А если у тебя будет искусственный интеллект, он каким-то сложным творческим способом должен будет понять, что вот тут-то этот jit eval используется только лишь для генерации кода для математических формул, функций одной переменной. И этот ИИ должен быть в состоянии сделать специализированный компилятор, узкозаточенный под конкретно эту область, который работает быстрее чем более общий компилятор.

Вот в ядре Linux кстати есть особый JIT для BPF https://lwn.net/Articles/437981/ и никто в здравом уме не будет в ядро тащить рантайм JIT от какого-нибудь лиспа например

Исходная версия SZT, :

Вот определение с википедии

Искусственный интеллект - свойство интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека.

Когда мы на высокоуровевых языках оперируем абстракциями, мы обычно не задумываемся, как именно машина будет эти абстракции эффективно транслировать на машинный уровень. А «механически» оттранслировать их не получается, как показывает практика. Да что там, даже Си компиляторы порой выдают чепуху, если почитать код на ассемблере, что уж говорить о высокоуровневых языках.

Или вот представь что у тебя есть некий высокоуровневый язык с jit eval-ом. Ты сделал консольный калькулятор. Пользователь вводит

> f1(x) = x^3;
и у тебя в программе образовалась некая функция f1, принимающая x и считающая по формуле. Чтобы такое сделать, необходимо распарсить ввод пользователя, скомпилировать некую мини-функцию, и чтобы потом ее можно было вызывать, например так:
> f1(3);
< 27
Что тут можно сделать с высокоуровневым языком, чтобы это все быстро работало? Можно переводить f1(x) = x^3 в некий код на твоем высокоуровневом ЯП, потом компилировать его, и вызывать в случае надобности. Но тут возникает сложность - надо для этого тащить целый компилятор в рантайм. А это попросту глупо во многих случаях. И кроме того, целый компилятор будет слишком долго это компилировать т.к. он для более общих случаев предназначен, а не только для компиляции неких формул. А если взять тот же Си, я могу написать минималистичный JIT который бы непосредственно выдавал мне код функции в машинных кодах, и писать его в некую исполняемую область памяти. Потом вызывать в случае чего. Это будет значительно быстрее.

А если у тебя будет искусственный интеллект, он каким-то сложным творческим способом должен будет понять, что вот тут-то этот jit eval используется только лишь для генерации кода для математических формул, функций одной переменной. И этот ИИ должен быть в состоянии сделать специализированный компилятор, узкозаточенный под конкретно эту область, который работает быстрее чем более общий компилятор.

Вот в ядре Linux кстати есть особый JIT для BPF https://lwn.net/Articles/437981/ и никто в здравом уме не будет в ядро тащить рантайм JIT от какого-нибудь лиспа например