Pull to refresh
10
0
Send message
Ясно, вы не имеете ровным счетом ни малейшего представления о разработке компиляторов. Поздравляю. Упёртости, чванства и самоурвенности у вас хоть отбавляй — если бы еще знания были на том же уровне. Но обычно так не бывает.

Вы, кстати, уже облажались со страшной силой про алгоритмическую сложность. Теперь пытаетесь еще глубже опозориться, неся несусветную чушь про «метаязыки». Скажите честно, вам что, совсем, нисколечко не стыдно?
Нет, это до вас так и не дошло то, о чем я говорю. Что работа тестировщика не в том, чтобы «ошибки» искать. Это тоже, да, но есть и гораздо более важные задачи, которые разработчик выполнить не может. Это и user experience testing (юзеры из разработчиков херовейшие получаются), и занудное тестирование на соответствие букве спецификации (мало какой разработчик сможет вогнать себя в ментальное состояние, позволяющее хотя бы осилить пару страниц какого либо стандарта).

Про метаязык для описания спецификации — фиг вам. Не бывает. Спецификации как правило пишутся идиотами. Они не поддаются какой либо формализации.

Так что вы тут не теоретизируйте. Теоретизирования не интересны. Сможете такой метаязык продемонстрировать — тогда будет о чем поговорить. Такой, чтобы, например, кривую и противоречивую спецификацию C99 мог описать.
Для The Economist репутация все таки важнее нечистых денег. Так что все не так просто.
Да, как я мог забыть — вы же несли отвратительную чушь про скорость поиска в UTF-строках. Извольте ка ответить, что вы имели в виду? Для регулярных выражений нет никакой разницы. Или вы random access считаете? Ну так запомните, нет общеупотребимых языков, где random access к элементу строки не был бы O(1). Хаскелль не считаем, там строки вообще в виде списков реализованы.
Не на любую классификацию, а на некорректную.

Одной общей классификации нет и быть не может, а вот по разным аспектам языки можно разделить на managed/unmanaged (по наличию GC), на скриптовые и нескриптовые (по наличию в языке eval, но некоторые считают критерием просто наличие REPL), на динамически и статически типизированные, на языки общего назначения и [e]DSL. Языки можно разделить по парадигмам, на императивные, декларативные и гибридные. И всё это будет очень грубой и приблизительной классификацией.

Пытаться эти классификации еще дальше огрубить и выдать это за классификацию для «начинающих» — просто глупо и нелепо. И, главное, совершенно неясен смысл. Вы хотите дать советы по увеличению производительности? Давайте. Только без совершенно не относящихся к этой теме классификаций. И основывайте ваши советы не на «наблюдении» и досужих домыслах, а на измерении.
Пардон, не понял сразу, на какой вы стороне.
the term strong typing is used to describe those situations where programming languages specify one or more restrictions on how operations involving values having different data types can be intermixed. Its antonym is weak typing

Прочитайте еще раз процитированное. Внимательно. Это никак не относится к статической типизации, то есть к типизации во время компиляции. Это только лишь о том, что есть связанные с типами ограничения. В рантайме они применяются, или во время компиляции — не уточняется.
Ах, «наблюдение». Не корректные измерения с помощью профайлера или хотя бы секундомера, а тупо «наблюдение». Так дела не делаются.

Повторяю для особо одаренных — все, что вы тут в «узкие места» записали, таковыми никоим образом не является. Ни в каком приближении.
но на выходе же он дает не промежуточные звенья для исполнения…

Да ну? Тот же clang может вывести llvm-биткод, например.

Да и, собственно, какая разница?

Что вас до сих пор держит в этой ветке? :)

То, что я очень не люблю самоуверенных идиотов и ламеров. Вы, ни хрена не зная про языки программирования, беретесь их классифицировать (и пожалуйста, классифицируйте себе молча), и что гораздо хуже, рассказывать о своих бреднях начинающим.

До вас, неумного ламера, так и не дошло. Вы считаете, что доступным языком какие-то азы рассказываете, тогда как на самом деле вы пишете абсолютную, стопроцентную чушь. Ложь и идиотизм в каждом вашем утверждении. И что самое отвратительное, вместо того, чтобы признать это и исправиться вы имеете наглость упираться и отстаивать свою заведомо идиотскую точку зрения.
Термин не очень-то строгий, много значений:

en.wikipedia.org/wiki/Strongly_typed_programming_language

А что, правда PHP приятно использовать? О ужас!
а вот зато сами приложения на C# высокой скоростью работы (а особенно первоначальной загрузки программы) как-то не отличаются

Ну это, строго говоря, неправда.

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

"Потому что они не генерят нативный код. Они генерят байт-код. А с байт-кодом можно вытворять что угодно: хочешь, интепретируй в реальном времени, хочешь, интерпретируй при запуске весь код за раз (компилируй), хочешь, интерпретируй по библиотечно."

Вы будете смеяться, но тот же Си компилируется через несколько виртуальных машин, многие из которых еще более далеки от «реального железа» чем несчастная JVM. На тот же GIMPLE в GCC посмотрите, хотя бы. И да, с ними можно делать что хочешь, хоть интерпретировать, хоть компилировать. Так что ваш критерий абсолютно нелеп, и проистекает он от вашей безграмотности и от незнания того, как устроены все современные компиляторы.

И повторюсь — вы не понимаете никаких общих принципов. Вообще. Ни на каком уровне. Вы хуже чем чайники. Вы ламер. Чайник просто не знает, а вы «знаете» какую-то вами выдуманную чушь, не имеющую отношения к реальности.
То, что «делить на ноль нельзя» — это полуправда. А то, что вы пишете — 100% ложь.
Да да, расскажите мне, где это у типизации по Карри ноги из Паскаля растут. И что общего между алгоритмом Хиндли-Милнера и Паскалем.
Вы это мне говорите?!? Не, серьёзно?

В паскале самый примитивный вариант type propagation. Проще вообще ничего не бывает, даже в Си система типов сложнее, потому как там есть этот гнусный неявный array to pointer decay.

Хотите узнать, что такое сложные и мощные системы типов? Хотите поучиться сначала, а потом говорить другим, чему им стоит учиться? Ну начинайте, вперед:

www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf

coq.inria.fr/doc/toc.html

www.lambdassociates.org/Book/page143.htm
Ну, есть как бы и гораздо более современные и полезные системы типов, чем примитивнейшая паскалевская.
Вы написали обобщенную безграмотную чухню.

Да, с UTF-16 ошибся, имел в виду именно UCS-2. В Java и в .NET все символы двухбайтовые во внутреннем представлении.

Но — даже для представлений с переменной длиной символа, на скорость поиска это никак не влияет. Так что абсолютно всё что вы написали является безграмотным бредом.

Information

Rating
Does not participate
Registered
Activity