Очень хорошо знаком с Java и Erlang.
Есть задача написать парсер на Haskell, который на вход будет принимать декларацию интерфейсов написанных на том же подмножестве хаскелля,
а на выходе выдавать java классы.
Я должен дать ответ смогу ли я это реализовать на хаскеле за 2 недели.
Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы.
Как вы думаете, большой ли риск не сделать в срок именно за сложности языка?
Или хаскель довольно простая вещь?
Здравствуйте, SuperRockStar, Вы писали:
SRS>Очень хорошо знаком с Java и Erlang. SRS>Есть задача написать парсер на Haskell, который на вход будет принимать декларацию интерфейсов написанных на том же подмножестве хаскелля, SRS>а на выходе выдавать java классы. SRS>Я должен дать ответ смогу ли я это реализовать на хаскеле за 2 недели. SRS>Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы. SRS>Как вы думаете, большой ли риск не сделать в срок именно за сложности языка? SRS>Или хаскель довольно простая вещь?
Здравствуйте, SuperRockStar, Вы писали:
SRS>Очень хорошо знаком с Java и Erlang. SRS>Есть задача написать парсер на Haskell, который на вход будет принимать декларацию интерфейсов написанных на том же подмножестве хаскелля, SRS>а на выходе выдавать java классы.
Смысл? Насколько это обосновано? Какие преимущества от этого?
SRS>Я должен дать ответ смогу ли я это реализовать на хаскеле за 2 недели.
Я думаю, что нужно ответить "нет". Лично я имея ФП бэкграунд начал более менее писать через примерно 3 месяца.
SRS>Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы.
Всегда так поначалу кажется.
SRS>Как вы думаете, большой ли риск не сделать в срок именно за сложности языка?
Риск я оцениваю как 99%. Сложность то не в языке самом, язык сам прост как две копейки, ну ладно как три Сложность в том, чтобы понять эту простоту
SRS>Или хаскель довольно простая вещь?
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, SuperRockStar, Вы писали:
SRS>Очень хорошо знаком с Java и Erlang. SRS>Есть задача написать парсер на Haskell, который на вход будет принимать декларацию интерфейсов написанных на том же подмножестве хаскелля, SRS>а на выходе выдавать java классы. SRS>Я должен дать ответ смогу ли я это реализовать на хаскеле за 2 недели. SRS>Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы. SRS>Как вы думаете, большой ли риск не сделать в срок именно за сложности языка? SRS>Или хаскель довольно простая вещь?
Я не вижу, зачем здесь разборщик.
Ты можешь сделать просто функции для декларации описаний, и ими пользоваться.
Тогда тебе этот разборщик не понадобится, придётся реализовывать только логику.
В этом случае есть вероятность уложиться в две-три недели. С разборщиком количество необходимых знаний вырастает и срок увеличивается (по моим прикидкам — месяц).
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
T>Я не вижу, зачем здесь разборщик.
T>Ты можешь сделать просто функции для декларации описаний, и ими пользоваться.
T>Тогда тебе этот разборщик не понадобится, придётся реализовывать только логику.
T>В этом случае есть вероятность уложиться в две-три недели. С разборщиком количество необходимых знаний вырастает и срок увеличивается (по моим прикидкам — месяц).
Здравствуйте, yumi, Вы писали:
Y>Здравствуйте, SuperRockStar, Вы писали:
SRS>>Очень хорошо знаком с Java и Erlang. SRS>>Есть задача написать парсер на Haskell, который на вход будет принимать декларацию интерфейсов написанных на том же подмножестве хаскелля, SRS>>а на выходе выдавать java классы.
Y>Смысл? Насколько это обосновано? Какие преимущества от этого?
Это бизнес-требования.
SRS>>Я должен дать ответ смогу ли я это реализовать на хаскеле за 2 недели.
Y>Я думаю, что нужно ответить "нет". Лично я имея ФП бэкграунд начал более менее писать через примерно 3 месяца.
SRS>>Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы.
Y>Всегда так поначалу кажется.
SRS>>Как вы думаете, большой ли риск не сделать в срок именно за сложности языка?
Y>Риск я оцениваю как 99%. Сложность то не в языке самом, язык сам прост как две копейки, ну ладно как три Сложность в том, чтобы понять эту простоту
SRS>>Или хаскель довольно простая вещь?
Y>
Здравствуйте, thesz, Вы писали:
T>Я не вижу, зачем здесь разборщик. T>Ты можешь сделать просто функции для декларации описаний, и ими пользоваться. T>Тогда тебе этот разборщик не понадобится, придётся реализовывать только логику. T>В этом случае есть вероятность уложиться в две-три недели. С разборщиком количество необходимых знаний вырастает и срок увеличивается (по моим прикидкам — месяц).
Ну, теоретически есть haskell-src (+ haskell-src-exts) и даже GHC as a library, но и со всем этим шансов на 2 недели, конечно, нет никаких.
Вообще, идея разборщика до крайности странная. Единственный сценарий, который приходит на ум — наличие большого объема *автоматически сгенерированного* кода на Хаскелле при отсутствии доступа к генератору.
Здравствуйте, awson, Вы писали:
A>Ну, теоретически есть haskell-src (+ haskell-src-exts) и даже GHC as a library, но и со всем этим шансов на 2 недели, конечно, нет никаких.
Я тоже поискал и нашел haskell-src. При наличии AST понадобится 1 трансформация дерева и претти-принтер. На что нужно две недели? Или подразумевается некий мощный семантический контроль?
Здравствуйте, z00n, Вы писали:
A>>Ну, теоретически есть haskell-src (+ haskell-src-exts) и даже GHC as a library, но и со всем этим шансов на 2 недели, конечно, нет никаких. Z>Я тоже поискал и нашел haskell-src. При наличии AST понадобится 1 трансформация дерева и претти-принтер. На что нужно две недели? Или подразумевается некий мощный семантический контроль?
1. Товарищ "Посмотрел язык — вроде ничего сложного. Еще есть пару выходных почитать туториалы.".
2. Не знаю что такое "мощный семантический контроль", но с одной стороны мы имеем Хаскелл, а с другой жабу. Ситуация может лежать в диапазоне от довольно простой, до соизмеримой с задачей компиляции Хаскелла в какую-нибудь высокоуровневую жабу, которую они вообще не решат никогда, причем разборщик тут будет дело стопятое. Все зависит от того, о каком "подмножестве" со стороны Хаскелла (да и жабы) идет речь.
да, нет. там ничего сложного. обычные примитивные типы и интерфейсы описаны на подмножестве Хаскелля. Все это похоже на упрощенный IDL.
Я не знаю почему Хаскель для генератора, но есть у нас тут товарищи кванты, которые его активно используют, и у них есть генератор для разных языков, вот моя задача сделать для джавы.
Здравствуйте, SuperRockStar, Вы писали:
SRS>да, нет. там ничего сложного. обычные примитивные типы и интерфейсы описаны на подмножестве Хаскелля. Все это похоже на упрощенный IDL. SRS>Я не знаю почему Хаскель для генератора, но есть у нас тут товарищи кванты, которые его активно используют, и у них есть генератор для разных языков, вот моя задача сделать для джавы.
То есть сам генератор закрыт? Тогда фик его знает, но навскидку, освоить Хаскелл в степени, достаточной для написания *на нем самом* (даже с учетом инструментария, о котором я написал раньше), да еще и написать этот самый генератор за 2 недели — нереально.
А в какие "разные языки" этот генератор генерирует? Может оказаться, что проще использовать какой-то из них в качестве исходного. На Хаскелле есть такой проект — wxHaskell. Так вот там до недавнего времени для генерации оберток для wxWidgets использовались обертки для Эйфеля. Да и сейчас частично используются.
T>>Я не вижу, зачем здесь разборщик.
T>>Ты можешь сделать просто функции для декларации описаний, и ими пользоваться.
T>>Тогда тебе этот разборщик не понадобится, придётся реализовывать только логику.
T>>В этом случае есть вероятность уложиться в две-три недели. С разборщиком количество необходимых знаний вырастает и срок увеличивается (по моим прикидкам — месяц).
SRS>я могу сделать только так.
Ты можешь сделать только как?
У тебя есть уже текст на Хаскеле (на его подмножестве). Вот и включи его, и используй.
Не нужен тут разборщик, не нужен.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали:
T>У тебя есть уже текст на Хаскеле (на его подмножестве). Вот и включи его, и используй.
Идея красивая, но тогда, похоже, без template haskell не обойтись, потому как понадобится рефлексия, хотя, конечно, возможны варианты. Но это делает все менее реалистичными сроки для newbie.
Мужики! Вы в своем уме советовать человеку чего-то не видив даже примера спецификации интерфейсов?
Единственный умный совет тут — не учите языки за две недели.
ЗЫ
Скромный вопрос. Чем определяется требования создания генератора именно на Хаскеле? Почему нельзя сделать это на том же Эрланге (если хочется ФП и при этом Эрланг знаком)?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Скромный вопрос. Чем определяется требования создания генератора именно на Хаскеле? Почему нельзя сделать это на том же Эрланге (если хочется ФП и при этом Эрланг знаком)?
На эрланге генератор парсеров/лексеров мутный и документация по ним плохая. И работа со строками так себе — в общем, генерить код будет как-то многословно и коряво.