Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/55: Рейтинг темы: голосов - 55, средняя оценка - 4.82
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
30.01.2015, 10:12
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от taras atavin Посмотреть сообщение
почему этот джит не вытеснил интерпретацию промежуточного кода?
где не вытеснил? конкретнее с примерами.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
подразумеваю сразу компилируемый
специально для привередливых окамл
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2015, 10:12
Ответы с готовыми решениями:

Delphi !? Плюсы и минусы
Почему при поиске работы через Internet в странах Европы и Америки очень редко можно встретить необходимость в Delphi?

Студентская жизнь.Ее плюсы и минусы.
Студентская жизньпрекрасна...Так говорят.А как думаешь ты?

Что вы делаете необычное на форуме(плюсы и минусы)
что вы делаете на форуме не обычного? Ну не так как все... Вот пример: прежде чем ответить кому-либо, почему-то смотрю его профиль,...

262
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 10:23
Цитата Сообщение от pycture Посмотреть сообщение
где не вытеснил? конкретнее с примерами.
Отовсюду. Где то у джит, а где то интерпретация промежуточного кода и вроде доходит даже до того, что сама виртуальная машина в каждом случае самостоятельно решает, какой кусок джитонуть, а какой интерпретировать.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
30.01.2015, 11:05
Цитата Сообщение от taras atavin Посмотреть сообщение
Отовсюду.
а должен?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 11:33
Дело не в том, что он кому то что то должен, а в том, что в выгода от компиляции некоторых языков в натив достаточно очевидна, чтоб полностью вытеснить интерпретацию, а в случае других языков не заметна, либо сама компиляция в натив слишком сложна в сравнении с компиляцией в шитый код. Какими признаками обладают такие языки? Мусорение, динамическая типизация и сложность самого языка. Какие признаки имеют языки другой группы? Как ни странно, динамическая типизация отметилась и там.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 11:44
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Что это? Пример как написать программу которая не откомпилируется? Сигнатуру f нужно написать.
Пример корректной программы, не проходящей проверку типов. Напиши сигнатуру f, будь добр, я б на это посмотрел.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Кортежи переменной размерности в Haskell не бывают.
Что такое кортежи переменной размерности? Вот есть у меня две переменные типов
Haskell
1
2
x :: (Int, Int)
y :: (Int, Int, Int)
Какую сигнатуру мне нужно указать у функции fst, чтоб её можно было применить и к x и к y?

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
С этим в Erlang.
Т.е. к динамической типизации, что и требовалось доказать.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А дальше объясните что делает eval
Вычисляет S-выражение. К.О.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
и может ли строку для неё, к примеру, юзер в окошечке набрать?
Для eval — нет, для read — может, результат read потом можно скормить eval'у или compile'у. Но так никто не делает. Явное использование read и eval/compile в CL (да и в любом языке с eval), тем более на ввод от пользователя — сильно дурной тон, источник code injection да и не нужно практически никогда.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
GC в lisp-е, как я понимаю, нет?
Есть. с 59-го года.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Объяснить не можете.
Эээ... Я объяснил. макросы генерируют S-выражения. Что тут непонятного?

Добавлено через 2 минуты
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Существуют ли языки компилируемые в машинный код, но использующие GC? Не припомню
Навскидку: CL, Ocaml, Haskell, Erlang, Go.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 11:44
Цитата Сообщение от pycture Посмотреть сообщение
специально для привередливых окамл
Привередливые очень привередливы.
Вика говорит что типизация статическая. То что в языке может быть динамическая типизация и машинный код, это ладно. Но если уж машинный код, то должна быть (как основная?) статическая, просто из за эффективности. В байткоде с этим проще, там динамическая типизация сравнительно менее накладна.

ps: это в OCaml-е, кажется целые 31 битные. 1 бит под нужды GC. Интересно, в лиспе не так ли?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 11:48
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Под компилируемым в машкод языком я подразумеваю сразу компилируемый.
Т.е. с появлением LLVM C++ тоже начинает выпадать из этой группы?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 11:54
1. Она сама на c++ написана.
2. Ну ка преимущества?
Кстати, c++ в код нифига не сразу компилится, а использует язык ассемблера в роли промежуточного языка и потом уже ассемблируется, только оба этапа выполняются при разработке.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 11:58
1. Она сама на c++ написана.
И что?

2. Ну ка преимущества?
Это не ко мне, а к авторам например.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 13:42
Цитата Сообщение от korvin_ Посмотреть сообщение
Напиши сигнатуру f, будь добр, я б на это посмотрел.
На здоровье.
Кликните здесь для просмотра всего текста
Haskell
1
2
3
4
5
6
7
8
{-# LANGUAGE RankNTypes #-}
 
xs :: [Int]
xs = []
 
main =  let f:: (forall a. a->a) -> ([Int],Char)
            f g = (g xs, g 'a') 
        in print $ f id
Цитата Сообщение от korvin_ Посмотреть сообщение
Какую сигнатуру мне нужно указать у функции fst, чтоб её можно было применить и к x и к y?
х и у - разные типы. В том и суть контроля типов чтобы не дать программеру напутать и использовать не тот тип.
Цитата Сообщение от korvin_ Посмотреть сообщение
Для eval — нет
Это всё что я хотел понять. Спасибо.
Цитата Сообщение от korvin_ Посмотреть сообщение
Навскидку: CL, Ocaml, Haskell, Erlang, Go.
Haskell, Erlang - эти точно байт-код.

Добавлено через 5 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
Т.е. с появлением LLVM C++ тоже начинает выпадать из этой группы?
Из какой группы? Плюсы от этого не стали с (только) динамической типизацией.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 14:14
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
На здоровье.
Т.е. потребовалось аж внести изменения в систему типов. А до этого Хаскеллопрограммисты как извращались?

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
х и у - разные типы. В том и суть контроля типов чтобы не дать программеру напутать и использовать не тот тип.
Но очевидно, что в реальной жизни fst применима для любого типа кортежей.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Haskell, Erlang - эти точно байт-код.
http://user.it.uu.se/~pergu/papers/erlang03.pdf
We present a user-oriented description of features and characteristics
of the High Performance Erlang (HiPE) native
code compiler, which nowadays is part of Erlang/OTP.
http://en.wikipedia.org/wiki/G... l_Compiler
the Glasgow Haskell Compiler or simply GHC, is an open source native code compiler
————

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Из какой группы? Плюсы от этого не стали с (только) динамической типизацией.
Из твоего определения группы компилируемых языков:
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Под компилируемым в машкод языком я подразумеваю сразу компилируемый.
При чем тут типизация?
LLVM — привносит «промежуточный» код, значит по-твоему Clang/LLVM — не компилятор, а интерпретатор C++?
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 14:40
Цитата Сообщение от korvin_ Посмотреть сообщение
Т.е. потребовалось аж внести изменения в систему типов. А до этого Хаскеллопрограммисты как извращались?
Извращаются лисперы, а на Хаскелле программы пишут .
Большинство пакетов использует такие расширения. Без них на Хаскеле только теоретические задачки решали бы.
Цитата Сообщение от korvin_ Посмотреть сообщение
he Glasgow Haskell Compiler or simply GHC, is an open source native code compiler
Не читайте что на заборе написано, а скачайте последнюю версию GHC в сорцах (она с рантайм системой, естественно) и найдите там генерацию нативного кода. Генерируется машинозависимый байткод и вместе с рантаймом (на сях) объединяется в исполняемый файл.
Цитата Сообщение от korvin_ Посмотреть сообщение
LLVM — привносит «промежуточный» код, значит по-твоему Clang/LLVM — не компилятор, а интерпретатор C++?
Уточняю. Я хотел узнать примеры компилируемых в машииный код (сразу, а не JIT) языков, с только (или преимущественно) динамической типизацией. Потому как, на мой взгляд, такое плохо совместимо. Обнаруживается экзотика вроде Go (это экзотика?), OCaml-a c 31-битными целыми (вместо 32-х битных обычно). Может 31-бит - это признак таких языков? Как с этим в лиспе?

Добавлено через 4 минуты
korvin_, кстати, приведите примеры других библиотечных функций, кроме id и тех что в GHC.Ext, которые можно передать в вышеупомянутую функцию f. Таких мало.
Я к тому что пользы от функции которая применяет переданную ей функцию к обоим элементам пары абы чего не вдруг найдёшь.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 15:34
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Извращаются лисперы, а на Хаскелле программы пишут
Оно и видно...
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
На здоровье.
Кстати неправильная сигнатура, ибо тип результата f получается не полиморфен. Попробуй еще.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
на Хаскеле только теоретические задачки
Вся суть Хаскелла.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Go (это экзотика?)
Нет.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
экзотика вроде OCaml
Ничего экзотичного.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Может 31-бит - это признак таких языков?
Нет.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Как с этим в лиспе?
Тут всё подробно объяснено.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Таких мало.
Любое замыкание. Ну вот что с этим делать? Казалось бы (+) имеет тип (Num a => a -> a -> a), литерал 1 имеет тип (Num a => a), выражение (+ 1) должно иметь тип (Num a => a -> a), а нет, не работает. Как объяснить это Хаскеллу?
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
30.01.2015, 16:00
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Не угадали. Холомьев, Шевченко, "Real World Haskell", Simon Marlow.
Ого сколько хаскелистов ненавидят лисп. Это похоже на тенденцию, однако.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
там особого выигрыша от написания проблемно-ориентированного языка не вижу
Вы правы. Сначала было "а что если", потом это "а что если" успешно портировалось в ежедневную рутину.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Или Вы в 8-мибитки рантайм с байткодом, GC, свопом во внешнюю память и встроенной кооперативной многозадачностью делаете? Тогда круто!
Действительно круто Надо и этот вариант рассмотреть.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Надёюсь не секрет, с какими мк работаете?
Так же как и Вы, что "подсунут". В основном 51, сейчас mc68 в работе.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Существуют ли языки компилируемые в машинный код, но использующие GC ? Не припомню
Ха! А как же древний оберон?
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
С учётом ещё и динамической типизации, слабо верится что лисп в машкод компилируется.
Странный Вы. Тяжело вбить в поиск "lisp compiler"?
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 16:27
Цитата Сообщение от korvin_ Посмотреть сообщение
Кстати неправильная сигнатура, ибо тип результата f получается не полиморфен
Я и не собирался его обобщённым делать. Я исправил Ваш код только чтобы он компилировался.
Смысла в нём, как я уже сказал, мало. В ф-ию g подставляется один раз список целых, а второй символ - конкретные типы. А возвращать вы хотите неизвестно что. Что можно полезного в g делать? Это у Вас такой стиль?
Цитата Сообщение от korvin_ Посмотреть сообщение
Тут всё подробно объяснено.
Ещё один минус лиспу.
Цитата Сообщение от korvin_ Посмотреть сообщение
Любое замыкание.
Что "замыкание"? В Haskell статическая типизация. Функция получающая и возвращающая ни как не конкретизированный тип ничего с аргументом делать не может, только вернуть (ну, вызвать несколько служебных функций, управляющих ленью, например, это не в счёт). Так зачем приведённый Вами пример вообще?
Цитата Сообщение от korvin_ Посмотреть сообщение
Ну вот что с этим делать?
Это вообще курям на смех. Хотите, задавайте такие задачки в разделе Haskell cyberforum-а.

Добавлено через 21 минуту
Цитата Сообщение от castorsky Посмотреть сообщение
Вы правы. Сначала было "а что если", потом это "а что если" успешно портировалось в ежедневную рутину.
А, то есть это проблемно-ориентированный язык который бесконечно доделывается потому что хотелки заказчика предугадать невозможно? Ну, как говорится, чем бы дитя не тешилось, лишь бы не на лиспе (шутка ).
Цитата Сообщение от castorsky Посмотреть сообщение
Действительно круто Надо и этот вариант рассмотреть.
Я из этого тока кооперативную многозадачность сделал, для 18-ых пиков. Я не настолько крут. Но мысль есть.
Цитата Сообщение от castorsky Посмотреть сообщение
Тяжело вбить в поиск "lisp compiler"?
Помоему, лучше вики верить чем даже, к примеру, докации на haskell.org . У меня и до этого были сомнения (из за тормозов). Скачал сорцы GHC - нет там никакой генерации машинных команд. Как бы и тут так не оказалось.
Впрочем, не важно. Лиспать я не буду. И так вокруг более полезных языков и пакетов для освоения полно.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 16:45
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А возвращать вы хотите неизвестно что. Что можно полезного в g делать?
Например применить полиморфную show к каждому элементу кортежа. Да мало ли что.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Ещё один минус лиспу.
Лол. Как обычно, очень весомые доводы.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Что "замыкание"?
http://en.wikipedia.org/wiki/C... ogramming)

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Функция получающая и возвращающая ни как не конкретизированный тип ничего с аргументом делать не может
Т.е. обобщенные функции map, filter, foldl/foldr и т.д. идут лесом?

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Это вообще курам на смех. Хотите, задавайте такие задачки в разделе Haskell cyberforum-а.
Так я и думал, очередной слив.
0
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9
30.01.2015, 17:14
Цитата Сообщение от korvin_ Посмотреть сообщение
Например применить полиморфную show к каждому элементу кортежа.
Пример в студию!
Цитата Сообщение от korvin_ Посмотреть сообщение
Т.е. обобщенные функции map, filter, foldl/foldr и т.д. идут лесом?
Их аргументы конкретизированы - это списки, функции, а не произвольный а.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
30.01.2015, 18:01
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Генерируется машинозависимый байткод
Угу, такой байт-код, что запросто собирается стандартным линуховым ассемблером например.
Миниатюры
Динамическая/статическая типизация, интерпретация/компиляция и функциональные языки - плюсы и минусы  
0
 Аватар для nullxdth
2305 / 1064 / 77
Регистрация: 12.03.2013
Сообщений: 4,987
30.01.2015, 18:13
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
3-4 месяца, надцать лет назад, писал на автолиспе и сбёг оттуда. Код я понимаю, и понимаю что он плох.
Твой код-то? Ну не удивительно что он плох. Что можно ждать от человека, который префиксную запись считает за проблему.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 18:16
Наличие только префиксных операторов - хоть и не великая, но проблема, так как не всё удобно писать в таком синтаксисе. А несогласным место в Польше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2015, 18:16

Какой язык веб-программирования выбрать? Плюсы\минусы
Вопрос что ни на есть из раздела священных, но все же... Какой язык веб-программирования кто предпочитает? У кого какие плюсы и...

Плюсы и минусы
Господа, хочется узнать ваше мнение по такому варианту работы с сервером терминалов. Хочу предложить к рассмотрению: Cервер...

Плюсы и минусы C#
Добрый день! Не хочу ни в коем случае развязывать вечную войну идущей между Delphi и С, но требуется грамотный взвешенный ответ. Вообще...

Плюсы и минусы
В массиве Z(m) найти число чередований знака, то есть число переходов с плюсов на минус или с минуса на плюс. Например, в...

Плюсы и минусы J2se
Ребята, такой вопрос... Какие преимущества есть у j2se перед другими языками? и почему изучают именно его , а не чтото другое? ведь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru