AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.11.2008, 14:18   #1  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Thumbs up Редкая профессия
Сорри если баян, но на всякий случай поделюсь. Очень увлекательная статья как Российская небольшая софтверная фирма создала полноценный С++ компилятор!

http://www.pcmag.ru/issues/detail.php?ID=9972
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 09.11.2008, 15:06   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
типичный пример "создания суперсистемы" по-русски.
Кратко: "мы строили, строили и наконец построили. Да здравствуем мы! Только не знаем будет ли это востребовано".
Ярко описан в книге "Левша".

Стоит сравнить, например, с историей создания того же С++
Книга: Дизайн и эволюция С++. Бьерн Страуструп
DjVu: http://freebooks.net.ua/1217-straust...jucija-c..html

Почти на каждой странице человек говорит о том, что он пошел на компромисс, что был сделан выбор в сторону практичности и совместимости в ущерб идеальности... Но в результате плоды трудов его радуют не только его самого, но и многих, очень многих.
__________________
полезное на axForum, github, vk, coub.
Старый 09.11.2008, 16:14   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от mazzy Посмотреть сообщение
Почти на каждой странице человек говорит о том, что он пошел на компромисс, что был сделан выбор в сторону практичности и совместимости в ущерб идеальности...
Увлекся перечитыванием. Не могу не процитировать про перегрузку префксных и постфиксных ++ и --.
Цитата:
Это работает, не требует нового синтаксиса и имеет некоторую внутреннюю логику.
...
Объяснения необходимы, так как описанный механизм не имеет аналогов и поэтому выглядит чужеродным. Будь у меня выбор, я бы предпочел ключевые слова prefix и postfix, но в то время это было невозможно. Имеет значение, однако, лишь то, что прием работает, а те немногие программисты, которым он действительно нужен, в состоянии его оценить и использовать.
__________________
полезное на axForum, github, vk, coub.
Старый 09.11.2008, 20:11   #4  
dmitryul is offline
dmitryul
Участник
Аватар для dmitryul
 
265 / 44 (2) +++
Регистрация: 07.09.2007
Адрес: г. Москва
mazzy, могу предложить наверняка, что требовалось создать компилятор для embedded-систем и промышленных микроконтроллеров, там это актуально, т.к обычно код распространненных компиляторов получается громозким и медленным.
__________________
С уважением, Дмитрий.
Старый 11.11.2008, 01:39   #5  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от dmitryul Посмотреть сообщение
mazzy, могу предложить наверняка, что требовалось создать компилятор для embedded-систем и промышленных микроконтроллеров, там это актуально, т.к обычно код распространненных компиляторов получается громозким и медленным.
С++ для embedded это дурная трата времени, если кто и занимается, то исключительно для собственного развлечения. Для embedded обычно реализуют функциональные языки, чаще всего, диалект С или Lisp. Они сравнительно просты в написании, специалист ваяет такой компилятор за несколько часов.
__________________
Isn't it nice when things just work?
Старый 11.11.2008, 11:09   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от dmitryul Посмотреть сообщение
могу предложить наверняка, что требовалось создать компилятор для embedded-систем и промышленных микроконтроллеров
Если кто-то дочитал статью до конца то мог убедиться в том, что ни на какие embedded-системы созданный компилятор завязан не был:
Цитата:
Наша система не традиционный компилятор, порождающий объектный код, а так называемый компилятор переднего плана (front-end compiler), который в качестве результата своей работы формирует образ исходной программы на некотором промежуточном языке. Далее этот образ обрабатывается отдельной компонентой — генератором кода (back-end). Это обычная схема, давно принятая в многоязыковых системах программирования. Так как промежуточное представление выбирается единым для всех входных языков, то в системе достаточно единственного генератора кода, что исключает затраты на реализацию генератора для каждого отдельного компилятора. Кроме того, можно разработать несколько генераторов кода с единого внутреннего представления для различных аппаратных платформ, получив тем самым многоплатформную систему программирования. По этой схеме организована система gcc, похожим образом устроены и продукты семейства TopSpeed и десятки других.
Промежуточное представление, которое использовали [заказчики] в своих компиляторах (это, по существу, специальный язык, который можно назвать обобщенным ассемблером), было разработано довольно давно, выглядело несколько архаично, но для него было сделано несколько работающих генераторов для платформ Intel, Motorola, Sparc и менее известных процессоров.
Цитата:
Сообщение от macklakov Посмотреть сообщение
Для embedded обычно реализуют функциональные языки, чаще всего, диалект С или Lisp. Они сравнительно просты в написании, специалист ваяет такой компилятор за несколько часов.
Это такое «легкое художественное преувеличение», или есть реальный опыт написания компиляторов? Из моего скромного опыта, за несколько часов можно написать разве что простейший синтаксический анализатор a la калькулятор для сложных арифметических выражений.
Старый 11.11.2008, 11:55   #7  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,253 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Это такое «легкое художественное преувеличение», или есть реальный опыт написания компиляторов?
Если бы я был специалистом по компиляторам, я бы не занимался аксаптой Но я общался с людьми, которые этим занимаются. Они действительно очень быстро создают компиляторы, т.к. у них масса наработок и существуют специальные инструменты мета-программирования.
__________________
Isn't it nice when things just work?
Старый 11.11.2008, 12:51   #8  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от macklakov Посмотреть сообщение
Для embedded обычно реализуют функциональные языки, чаще всего, диалект С или Lisp.
Ну Lisp еще можно назвать функциональным языком, а С то каким образом?
Старый 11.11.2008, 13:18   #9  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
?
Цитата:
Сообщение от vc Посмотреть сообщение
Ну Lisp еще можно назвать функциональным языком, а С то каким образом?
А каким языком Вы себе представляете С?
Старый 11.11.2008, 13:18   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от macklakov Посмотреть сообщение
Они действительно очень быстро создают компиляторы, т.к. у них масса наработок и существуют специальные инструменты мета-программирования.
Компилятор компилятору - рознь.

Бывают нормальные LR1 языки, в которых синтаксис упорядочен и выражения можно разобрать в один проход, не заглядывая вперед. Для таких языков компилятор сделать действительно не проблема, особенно используя специализированные средства типа Yacc.

Но дело в том, что C++ очень неупорядоченный язык с префиксной и суффксной нотацией, смысл которой сильно зависит от того, что будет сказано впереди. Об этом и в статье говорилось, и Страустрап об этом писал с своих книгах. В частности, он писал, что он не смог использовать Yacc из-за особенностей синтаксиса С и С++.

То, что люди писали "с нуля" - не есть плохо.
То, что люди писали только после того, как разбирались 4 месяца - замечательно.
Плохо лишь то, что они не знают теперь что делать с написанным.

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

А вот русские создали супер-систему и мучаются. Прочитирую себя:
Цитата:
типичный пример "создания суперсистемы" по-русски.
Кратко: "мы строили, строили и наконец построили. Да здравствуем мы! Только не знаем будет ли это востребовано".
Ярко описан в книге "Левша".
__________________
полезное на axForum, github, vk, coub.
Старый 11.11.2008, 19:02   #11  
vc is offline
vc
Участник
Самостоятельные клиенты AX
Axapta Retail User
 
89 / 23 (1) +++
Регистрация: 03.06.2005
Цитата:
Сообщение от Lemming Посмотреть сообщение
А каким языком Вы себе представляете С?
Императивным и процедурным
Старый 14.11.2008, 08:45   #12  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Просто нет слов...
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:55.