Удалите "Механизм Javascript" из "Общие понятия".
Раздел «Общие понятия» не относится к конкретному языку. Не следует ли удалить ссылку на " движок Javascript "?
Бастьен Белломо ( разговор ) 12:57, 5 сентября 2016 (UTC)
- Вы правы, это не зависит от языка, но «движки JS» в наши дни являются основной категорией среды выполнения (из-за повсеместного распространения JS ), и я думаю, что они заслуживают упоминания как таковые (помимо упоминания node.js под «заметными временами выполнения»). Я хотел добавить его как подкатегорию виртуальных машин, но, похоже, забыл сделать для него отступ. Как вы думаете? Франсуа Робер ( разговорное ) 18:34, 5 сентября 2016 (UTC)
- PS Повсеместность JS-движков такова, что подмножество JS сейчас разрабатывается как своего рода новая сборка , способная запускать приложения, написанные на многих других языках. Это обобщает JS и, на мой взгляд, делает эти среды выполнения достойными упоминания не только как «движки JS» как таковые, но и как особую категорию виртуальных машин. Франсуа Робере ( разговор ) 19:21, 5 сентября 2016 (UTC)
Изменение порядка по ролям, а не по функциям
GliderMaven Что касается вашего недавнего редактирования : проблема с категоризацией различных стратегий выполнения, как вы это делали (и действительно проблема, которую я сам понимал некоторое время назад), заключается в том, что дихотомия компилятор / интерпретатор перестала существовать с появлением виртуальных машин. На бумаге ВМ - это прославленный интерпретатор; на самом деле это часть сложной системы, которая переводит, оптимизирует и выполняет код с использованием различных стратегий на разных этапах выполнения программы. Это не компилятор и не интерпретатор как таковой; действительно, ВМ полностью заменили последние. Поэтому я бы предпочел, чтобы классификация была более детальной, по функциям конкретных компонентов, а не по широким категориям «скомпилированный» против «интерпретируемого». Франсуа Робере ( разговорное ) 13:57, 31 октября 2017 (UTC)
- Я прекрасно это понимаю. Однако есть полезное различие, которое вы можете сделать. Вам необходимо правильно провести границы системы. Имеет ли система перевода, или же запустить его код? Если это виртуальная машина, то это не компилятор. Конечно, он вполне может * содержать * компилятор, но формально это интерпретатор или система времени выполнения. Точно так же компилятор может содержать интерпретатор для целей оптимизации, но, по сути, он не выполняет код - он выводит код, который должен выполняться второй системой. У них есть * разные * определения. GliderMaven ( разговор ) 15:34, 31 октября 2017 (UTC)
- Но речь идет не о «границах системы», а о компонентах. И интерпретаторы, и компиляторы выполняют компиляцию и транскомпиляцию AOT, но вы перечисляете их только в разделе «компиляция». Одна виртуальная машина может выполнять все без исключения функции компилятора на этапах выполнения, но вы помещаете ее только в «интерпретаторы». Если бы мы перечислили все существующие языки программирования как «скомпилированные» или «интерпретируемые», вы могли бы иметь смысл (хотя несколько языков и компилируются, и интерпретируются, и оба выполняются одним исполняемым файлом), но в нынешнем виде это различие не только неточно и неуместно (кстати, с теоретической точки зрения), но и приводит к ошибкам, когда требуется более детальный анализ, как в этом случае. Франсуа Робер ( разговорное ) 21:02, 31 октября 2017 г. (UTC)
- Нет, внешне компилятор ведет себя совершенно иначе, чем интерпретатор. Как я уже говорил, даже несмотря на то, что некоторые интерпретаторы внутри содержат компоненты, которые являются компиляторами, и наоборот, они по-прежнему ведут себя извне как интерпретаторы и компиляторы соответственно. Попытка объединить их в одно целое ни к чему не приведет и особенно бесполезна для читателя, который тоже пытается учиться. GliderMaven ( разговор ) 22:58, 31 октября 2017 (UTC)
- Так описывать систему по ее компонентам некорректно . Это ошибка композиции . GliderMaven ( разговор ) 22:58, 31 октября 2017 (UTC)
- ВМ - это интерпретатор, а не компилятор; из-за того, как он себя ведет, даже если он использует внутреннюю компиляцию. GliderMaven ( разговор ) 22:58, 31 октября 2017 (UTC)
- Или, скажем так: в наших собственных статьях и компиляторы, и интерпретаторы, как правило, определяются их внешним поведением, а не внутренними технологиями. GliderMaven ( разговор ) 23:15, 31 октября 2017 (UTC)
- Итак, вы признаете, что компилятор / интерпретатор может быть как компонентом, так и системой. Мы можем вернуться к этому позже.
и особенно бесполезен для читателя, который тоже пытается учиться
: вы группируете все стратегии компиляции, кроме одной, в рамках одних только «компиляторов», несмотря на то, что все они также используются интерпретаторами. Чем это полезно (его также скорее не хватает, поскольку ваша группировка касается только различий между компилятором и интерпретатором, а не фактическими этапами выполнения)? Франсуа Робере ( разговорное ) 14:01, 1 ноября 2017 (UTC)
- Потому что этот стол пытается организовать что-то по его основным существенным характеристикам, и внешнее поведение, которое они обязательно имеют, - действительно хороший способ сделать это. Организация чего-либо по внутренним компонентам, которые что-то может иметь, а может и не иметь, вообще не идет очень далеко. GliderMaven ( разговор ) 15:48, 1 ноября 2017 (UTC)
- Называть переводчика «переводчиком» явно неудобно и в целом неверно . Обычно письменные переводчики вообще не делают ничего, что можно было бы назвать переводом. GliderMaven ( разговор ) 15:48, 1 ноября 2017 (UTC)
- Нет, это не так ... и я должен знать - я это создал.
- Значит, вы непреклонны в том, что стратегии компиляции, например, не имеют ничего общего с виртуальными машинами и не должны группироваться вместе? Франсуа Робере ( разговорное ) 16:45, 1 ноября 2017 (UTC)
- Это отличная боковая панель, но вы слишком стараетесь все усложнять. Эти боковые панели предназначены только для того, чтобы люди находили нужные статьи, а не раскрывали глубокую связь между ними. Эти связи очень хорошо описаны в соответствующих статьях. Будьте проще и глупее! GliderMaven ( разговор ) 17:25, 1 ноября 2017 (UTC)
- Напротив: я имею в попытке сохранить его простым; и не только просто, но и правильно. Пусть все, кому интересно, прочитают о точных различиях между компиляторами, интерпретаторами и виртуальными машинами. А пока позвольте боковой панели отразить, что нет разницы между компиляцией, выполняемой одним из них, вместо того, чтобы сбивать с толку бедного читателя, который задается вопросом, как же у JS может быть компилятор и когда C стал интерпретируемым языком . Компиляция - это, прежде всего, процесс , и эта боковая панель отражает это. Франсуа Робере ( разговор ) 19:48, 1 ноября 2017 (UTC)
- Конечно, это может быть компиляция, но эта боковая панель связана с компилятором . Компилятор обычно рассматривается как отдельная система, а не как компонент. Я имею в виду, что они существуют как компоненты, но обычно люди об этом не думают, и поэтому, вероятно, будут менее полезными. Кроме того, даже процесс должен иметь системные границы. GliderMaven ( разговор ) 22:07, 1 ноября 2017 (UTC)
- Кажется, я повторяюсь: компиляция - это прежде всего процесс. То, как и когда это выполняется, вторично по отношению к этому факту, а различие между «автономным» и «интегрированным» практически устарело (и посмотрите на случай Java , где ожидается, что вы будете работать как с компилятором
javac
- - так и с VM—java
- обе из которых выполняют компиляцию ). Более того, он вносит ошибки в боковую панель, которая больше связана с деталями (например, режимами компиляции), чем с «системами»; Фактически, единственными упомянутыми "полными" системами являются GCC и LLVM . Вам еще предстоит показать, как можно провести это различие и либо сделать вещи простыми и полезными, либо избежать ошибок. Помните, что боковая панель не была ошибочной с самого начала ; ваша ревизия есть. Франсуа Робер ( разговорное ) 08:33, 2 ноября 2017 (UTC)
- Кажется, я повторяюсь: компиляция - это прежде всего процесс. То, как и когда это выполняется, вторично по отношению к этому факту, а различие между «автономным» и «интегрированным» практически устарело (и посмотрите на случай Java , где ожидается, что вы будете работать как с компилятором
- Так вы всерьез утверждаете, что программа "java" (в первую очередь?) Является компилятором? Я имею в виду, что я очень, очень знаком с Java и техниками JIT с распознаванием типов, которые используются для того, чтобы заставить его работать достаточно быстро, но я бы никогда не стал называть это таким образом. Вы, кажется, говорите, что боковая панель должна так описывать ??? GliderMaven ( разговор ) 22:22, 2 ноября 2017 (UTC)
- Я говорю, что вы снова упускаете из виду всю суть. Перечитайте вышесказанное. Франсуа Робер ( разговорное ) 13:14, 3 ноября 2017 (UTC)
- Тем не менее, у меня может быть решение в разработке. Франсуа Робер ( разговорное ) 13:52, 3 ноября 2017 (UTC)
- Вы внесли изменения. «Программы, участвующие в исполнении», а под ними - «компилятор» ??? Извините, но стандартный компилятор AOT не участвует в выполнении. Вы, кажется, полностью занимаетесь тем, что "запускают компиляторы"? Они не запускают вещи, они готовят их к запуску? GliderMaven ( разговор ) 16:19, 3 ноября 2017 (UTC)
- Я имею в виду, что я понимаю, что методы JIT и перекомпиляции - это круто, но программа, которую я использую для взаимодействия с вами, - это просто скомпилированная программа. Операционная система, которую вы используете, почти наверняка является скомпилированной программой и т.д. GliderMaven ( разговор ) 16:19, 3 ноября 2017 (UTC)
- Если вы хотите внести конструктивные изменения (например, переименовать этот раздел), вы можете это сделать. На данный момент я в основном пытаюсь учесть ваши предпочтения, не допуская ошибок, как это сделали ваши правки. Но прежде чем вы это сделаете, найдите время и попытайтесь понять, для чего на самом деле предназначена эта боковая панель (и, соответственно, этот раздел). Я повторял и повторял это выше, но вы, кажется, игнорируете это. Франсуа Робер ( разговорное ) 19:25, 3 ноября 2017 (UTC)
- Я был бы намного счастливее, если бы вы действительно могли определить, что такое компилятор. Но я не думаю, что ты сможешь. Я могу, и мое определение такое же, как и в компиляторе . Что твое? GliderMaven ( разговор ) 23:45, 3 ноября 2017 (UTC)
- Это неточно, но удовлетворительно для целей данного обсуждения (которое мало что дает для решения). Теперь ты намного счастливее? (Если нет, возьмите Тима Тэма .) Франсуа Робер ( выступление ) 00:09, 4 ноября 2017 г. (UTC)
- Что вы имеете в виду под «обработкой кода» ??? GliderMaven ( разговор ) 00:11, 4 ноября 2017 (UTC)
- У вас есть предложение получше? Франсуа Робер ( разговорное ) 00:15, 4 ноября 2017 (UTC)
- Текущая версия представляется разумной. Я вернусь к нему завтра и посмотрю, есть ли еще. Франсуа Робер ( разговорное ) 01:01, 4 ноября 2017 (UTC)
- У вас есть предложение получше? Франсуа Робер ( разговорное ) 00:15, 4 ноября 2017 (UTC)