The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлен новый компактный компилятор 8cc

01.03.2015 19:03

Руи Уэяма (Rui Ueyama) из компании Google в рамках проекта 8cc разработал новый компактный компилятор для языка Си. Задачей проекта является обеспечение поддержки всех возможностей стандарта C11, сохранив кодовую базу компилятора как можно более компактной и простой. Исходные тексты распространяются под лицензией MIT.

При разработке больше внимание уделено читаемости кода, который написан с оглядкой на простоту изучения исходных текстов, что позволяет использовать 8cc в качестве учебного пособия для изучения техник построения компиляторов и особенностей обработки Си-кода на каждой стадии компиляции. При этом оптимизация результатов работы пока оставляет желать лучшего и генерируемый код обычно в два или более раз отстаёт по скорости выполнения от GCC. Реализация разумного уровня оптимизации относится к планам на будущее.

8cc поддерживает только сборку для архитектуры x86-64 на платформе Linux. Портирование на другие системы не является первоочередной задачей и будет реализовано только после устранения имеющихся проблем и реализации должного уровня оптимизации. В настоящее время компилятор уже успешно проходит тест собственной пересборки, но так как разработка ведётся всего несколько месяцев, пока не исключается возникновение проблем и ошибок при сборке других проектов.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Релиз компилятора PCC 1.1.0
  3. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  4. OpenNews: Проект HPC выпустил распараллеливающий компилятор Par4All 1.4
  5. OpenNews: Увидел свет оптимизирующий свободный компилятор Open64 5.0
  6. OpenNews: Компания PathScale открыла под лицензией GPL высокопроизводительные GCC-совместимые компиляторы EKOPath
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41754-bcc
Ключевые слова: bcc, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (152) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:11, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >из компании Google

    В каждое скомпилированное приложение будет добавляться реклама и зодн?

     
     
  • 2.2, Аниним (?), 20:31, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    ...которые будут требовать гуглхром для показа
     
     
  • 3.90, Andrey (??), 18:03, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А для запуска потребуется регистрация в G+
     
     
  • 4.151, count0krsk (ok), 18:30, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    С обязательным подтверждением через СМС.
    Для восстановления аккаунта - скан паспорта и фото на фоне гугло-бука.
     
  • 2.4, mine (ok), 20:35, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Компиляция напрямую в JavaScript позволит реализовать это, а так же ускорить работу в 100500 раз.
     
  • 2.21, Аноним (-), 22:48, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Глянул исходники, проблевался.

     
     
  • 3.23, Akue (?), 23:12, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не поверил... и тодже проблевался
     
     
  • 4.25, Аноним (-), 23:26, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не поверил и посмотрел -//-
     
  • 4.26, A.Stahl (ok), 23:26, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я уж было обрадовался -- дай, думаю, тоже посмотрю на корявый код в более или менее большом проекте.
    Глянул. Код как код. Обычный сишный код. Кроме for(;;) ничего не удивило.
     
     
  • 5.34, Аноним (-), 00:52, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Глянул. Код как код. Обычный сишный код. Кроме for(;;) ничего не удивило.

    Утверждается что там навалом static - "just for lulz".

     
     
  • 6.47, atnt (?), 08:22, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Про какой static идет речь, статические переменные или функции?
     
  • 5.43, Аноним (-), 06:23, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А что странного в for(;;)? Обычное сишное обозначение для бесконечного цикла. while(true) используют обычно те, кто начинал с какого-нибудь другого языка.
     
     
  • 6.62, клоун (?), 13:26, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Есть два типа циклов: с заранее известным (for) и неизвестным (while) количеством повторов.

    Количество повторов заранее неизвестно, но используется оператор цикла с заранее известным - с какой целью?

    То, что так можно сделать, не означает, что так нужно делать.

     
     
  • 7.65, XoRe (ok), 13:40, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Есть два типа циклов: с заранее известным (for) и неизвестным (while) количеством
    > повторов.

    Где такое говорится про for в языке C?
    for каждую итерацию проверяет условие.

     
     
  • 8.66, клоун (?), 13:56, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это общая теория языков программирования Первые называются арифметические, втор... текст свёрнут, показать
     
     
  • 9.68, mickvav (?), 14:17, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем вообще выделяются эти два типа циклов ... текст свёрнут, показать
     
     
  • 10.69, клоун (?), 14:19, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    http festival 1september ru articles 531460 Как раз твой уровень ... текст свёрнут, показать
     
     
  • 11.79, Andrey Mitrofanov (?), 15:44, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Мы поняли, чей это уровень, и откуда есть пошла общая теория циклов не прод... текст свёрнут, показать
     
     
  • 12.136, Абырвалг (?), 15:20, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А клоун-то все по делу написал, между прочим, что тебя не устроило ... текст свёрнут, показать
     
     
  • 13.152, count0krsk (ok), 18:36, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да фигню как обычно написал Басик какой-то и простыня Нет бы по рабоче-крестья... текст свёрнут, показать
     
  • 9.73, Crazy Alex (ok), 14:48, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть общая теория , а есть сложившиеся для конкретного языка традиции, к которы... текст свёрнут, показать
     
     
  • 10.75, клоун (?), 14:57, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хуже не-специалистов только бывшие специалисты Не-специалист хотя бы прислушива... большой текст свёрнут, показать
     
     
  • 11.86, Аноним (-), 17:46, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зато мы знаем главное - неважно кто хуже, важно кто лучше А лучший клован - это... текст свёрнут, показать
     
  • 11.87, Crazy Alex (ok), 17:50, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Клоун - он клоун и есть Не доходит до него, хоть тресни for читается лучш... большой текст свёрнут, показать
     
     
  • 12.110, Абырвалг (?), 20:45, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А теория твоя применима к Pascal-like циклам, к которым сишный for не имеет ни ... текст свёрнут, показать
     
     
  • 13.111, arisu (ok), 20:49, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты опоздал на несколько десятков лет ... текст свёрнут, показать
     
     
  • 14.138, Andrey Mitrofanov (?), 16:07, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, не всем родители рассказывали сказки про те делёкие времена, когда не бы... текст свёрнут, показать
     
     
  • 15.153, count0krsk (ok), 18:43, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нас учили, что goto в Паскале - это плохо-плохо-плохо И били виртуальной линейк... текст свёрнут, показать
     
  • 13.129, Crazy Alex (ok), 00:00, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что у вас всех ники такие говорящие Ну натурально Шариков же Ты вообще ка... текст свёрнут, показать
     
     
  • 14.135, Абырвалг (?), 15:08, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Цикл будет работать так, как захочет компилятор А ЯВУ, циклы for и while - это ... текст свёрнут, показать
     
     
     
    Часть нити удалена модератором

  • 16.139, Абырвалг (?), 18:09, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что не мешает мне немного разбираться в программировании ... текст свёрнут, показать
     
  • 13.146, XoRe (ok), 19:00, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    for i 0 SomeFunction i i реализуйте через for в паскале Просто я... текст свёрнут, показать
     
     
  • 14.154, count0krsk (ok), 18:48, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я бы написал k SomeFunction i for Так понятнее ИМХО Иногда лучше расписат... текст свёрнут, показать
     
     
  • 15.163, Led (ok), 01:23, 06/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Никто в тебе и не сомневался, клоун-2... текст свёрнут, показать
     
  • 13.167, freehck (ok), 06:41, 07/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Послушайте, уважаемый, а зачем вообще на этом останавливаться Давайте вообще им... текст свёрнут, показать
     
     
  • 14.168, arisu (ok), 12:13, 07/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    так и не пишем во многих случаях потому что лень и auto есть ... текст свёрнут, показать
     
  • 12.112, Абырвалг (?), 20:51, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Бесконечный цикл - это даже не смешно, руки бы повыдирать из жопы таким программ... текст свёрнут, показать
     
     
  • 13.155, count0krsk (ok), 18:49, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У Вас ашипка в слове пОгромист ... текст свёрнут, показать
     
  • 12.113, Аноним (-), 20:59, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    c goto не пали контору, пусть неосиляторы сей которые учили вперемешку си и плюс... текст свёрнут, показать
     
  • 11.95, Аноним (-), 18:32, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Клоун эпично обгадил самого себя единственным предложением ... текст свёрнут, показать
     
     
  • 12.156, count0krsk (ok), 18:51, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скоро напишет учебное пособие Как нагадить на себя, не опуская высоко задранны... текст свёрнут, показать
     
  • 11.105, arisu (ok), 20:20, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    спроси у своих хозяев из m , например сколько лет должно пройти, пока они сдела... текст свёрнут, показать
     
     
  • 12.127, Аноним (-), 23:24, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А до С11 он видимо вообще не доживет Образцово-показательные выступления - диа... текст свёрнут, показать
     
  • 12.164, Led (ok), 01:25, 06/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    К 2099-у - это же очевидно или даже досрочно - к 2098-у ... текст свёрнут, показать
     
  • 11.119, Аноним (-), 21:52, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Самокритика - это хорошо ... текст свёрнут, показать
     
  • 7.71, Crazy Alex (ok), 14:40, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Клоун, так и скажи, что ты идиоматичного Си в глаза не видел
     
  • 7.100, Аноним (-), 19:02, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Количество повторов заранее неизвестно, но используется оператор цикла с заранее известным - с какой целью?

    В какой-то ВизуалСтудии while(true) по умолчанию давал варнинг (типа "осторожно бесокнечный цикл"), чтобы не колдовать с прагмами, рекомендовалось использовать for(;;)

     
  • 7.169, northbear (??), 16:01, 24/05/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Тупо количество символов посчитай. Си создавался во времена, когда память была дорогой и  компактность кода ценилась высоко.
     
  • 5.59, Тот Самый Аноним (?), 12:08, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Я уж было обрадовался -- дай, думаю, тоже посмотрю на корявый код
    > в более или менее большом проекте.
    > Глянул. Код как код. Обычный сишный код. Кроме for(;;) ничего не удивило.

    Заголовочные файлы все просмотрели?


     
     
  • 6.88, Crazy Alex (ok), 17:53, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    А чем тебе там заголовок не понравился? Мило и чистенько.
     
  • 5.72, Crazy Alex (ok), 14:43, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальный код. А уж на for(;;) жаловаться в сях - грех. Самый очевидный и бросающийся в глаза способ нарисовать вечный цикл
     
  • 4.36, Xasd (ok), 01:36, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нормальный код
     
     
  • 5.60, Тот Самый Аноним (?), 12:08, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > нормальный код

    Обфусцированный.

     
  • 3.50, Аноним (-), 08:39, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это из-за того, что съели что-то не то. Нужно аккуратно выбирать что кушаете. Даже в кризис.
     
  • 2.22, Аноним (-), 22:51, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что за «проект 8cc», про который Гугл, например, ничего не знает?


     
     
  • 3.40, seyko2 (ok), 05:12, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде это один из компиляторов в поставке go-lang. Данный компилятор только допилен до стандарта C11.
     

     ....большая нить свёрнута, показать (55)

  • 1.3, Анономс (?), 20:33, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > генерируемый код обычно в два или более раз отстаёт по скорости выполнения от GCC

    Кого это волнует, скорость компиляции какая? *Clang face*

     
     
  • 2.7, Аноним (-), 21:00, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –6 +/
    кого это волнует если оно умеет только Си?
     
  • 2.8, Анончик (?), 21:19, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это не скорость компиляции, а скорость выполнения скомпиленного кода.

    Просто ради простоты этот компилятор вообще ничего никак не оптимизирует в сгенерированном ассемблере (а gcc, наоборот, является одним большим накостыливанием микрооптимизаций кода и всяких экстремальных кейсов. Типа «если в массиве нечётное количество элементов не большее сеим, то используем вот такую реализацию цикла»)

     
     
  • 3.28, Анономс (?), 00:10, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это не скорость компиляции, а скорость выполнения скомпиленного кода.

    Читать учитесь.

     
     
  • 4.38, pavlinux (ok), 02:57, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Читать учитесь.

    Ой, всё...  

    "... генерируемый код обычно в два или более раз отстаёт по скорости выполнения от GCC."

     
     
  • 5.55, Аноним (-), 09:04, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, серьезно, читать учитесь.
    Было сказано:
    > > генерируемый код обычно в два или более раз отстаёт по скорости выполнения от GCC
    > Кого это волнует, скорость компиляции какая? *Clang face*

    Вы это интерпретировали как "кого волнует, какая скорость компиляции".
    На самом же деле это значит "Кого волнует, какая скорость выполнения, лучше скажите, какая скорость компиляции *отсылка к вечной отмазке шланговцев «зато быстро компилируется»*"

     
     
  • 6.61, Анонимс (?), 12:53, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Хоть кто-то понял =)
     
     
  • 7.67, pavlinux (ok), 14:09, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Хоть кто-то понял =)

    Вы о чем, девочки?  

     

  • 1.5, mine (ok), 20:35, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    НО... ЗАЧЕМ?!
     
     
  • 2.6, Пропатентный тролль (?), 20:41, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Как учебное пособие
     
  • 2.9, Аноним (-), 21:21, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > НО... ЗАЧЕМ?!

    Зачем нужны 2048 дистров пингвина?

     
     
  • 3.133, Аноним (-), 05:22, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чтобы родственных кровосмешений не было.
     
     
  • 4.157, count0krsk (ok), 19:05, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Чтобы родственных кровосмешений не было.

    Так они же и так от 1го родителя произошли, а потом между собой все пересмешивались и "детей" нафоркали. Самый что ни на есть инцест во всей красе. Эммануэль отдыхает ))

     
  • 2.11, res2500 (ok), 21:39, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    для каждого дистрибутива линукс должно все быть свое от DE, компилятора ...
     
     
  • 3.158, count0krsk (ok), 19:07, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > для каждого дистрибутива линукс должно все быть свое от DE, компилятора ...

    Помним про Вавилонскую башню, да?
    И чтобы тролльнуть их, БГ сделал так, чтобы башню строили таджики, китайцы и прочие армяне, не понимающие друг друга.
    Результат известен ))


     
  • 2.20, Vkni (ok), 22:30, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    1 В софте, по крайней мере, в той области, где сделан 8cc, сейчас коммунизм см... большой текст свёрнут, показать
     
     
  • 3.24, me (??), 23:23, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нууу , bison ( yacc )  не использует . flex тоже .
    Все сам , вручную , разбирает .
    2015 на дворе , блин. А это -  студенческий проект номер 10001 .

     
     
  • 4.27, Vkni (ok), 23:30, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Нууу , bison ( yacc )  не использует . flex тоже
    > .
    > Все сам , вручную , разбирает .
    > 2015 на дворе , блин. А это -  студенческий проект номер
    > 10001 .

    Я не смотрел внутренности. Если так, то да, смысла в нём нет.

    upd. Посмотрел - вы правы. Кстати, без условных lex/yacc компилятор получается сложнее, чем с ними. Да ещё и медленее.

     
     
  • 5.29, Аноним (-), 00:13, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А это ничего что gcc не использует ни lex ни уасс ?

    Специалисты итить-колотить.

     
     
  • 6.30, me (??), 00:38, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    http://en.wikipedia.org/wiki/GNU_bison

    GCC started out using Bison, but switched to a hand-written recursive-descent parser for C++ in 2004 (version 3.4),[9] and for C and Objective-C in 2006 (version 4.1)[10]

    И причина вообщем была в C++ ( ну и еще паре других языков ) , тяжко его LALR(1) парсить .
    Колотить - не переколотить , спецЫалист .  

     
     
  • 7.31, Аноним (-), 00:42, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надо же, один из специалистов освоил педивикию. Уже прогресс.
     
     
  • 8.32, me (??), 00:44, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну да , ну да Подстраиваюсь под уровень дискуссии ... текст свёрнут, показать
     
  • 6.33, Олег (??), 00:46, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ага :)

    $ find gcc-4.8.3/ -regex '.*\.[ly]'
    gcc-4.8.3/intl/plural.y
    gcc-4.8.3/gcc/gengtype-lex.l
    gcc-4.8.3/libjava/classpath/gnu/xml/xpath/XPathParser.y

     
  • 5.107, arisu (ok), 20:25, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > upd. Посмотрел - вы правы. Кстати, без условных lex/yacc компилятор получается сложнее,
    > чем с ними.

    фигня. ничего проще pratt parser и не придумать. зачем для этого городить огород с внешним софтом — не ясно.

    > Да ещё и медленее.

    как минимум спорно. машина состояний у генераторов получается немаленькой.

     
  • 4.106, arisu (ok), 20:22, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Нууу , bison ( yacc )  не использует . flex тоже

    уже за одно это получает плюсбесконечность в карму.

    а ты — минусбесконечность за отбивание знаков препинания пробелами.

     
     
  • 5.114, me (??), 21:23, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/

    >уже за одно это получает плюсбесконечность в карму.

    И +9000 кгеморрою и ЧСВ .

    >а ты — минусбесконечность за отбивание знаков препинания пробелами.

    Извините , счас всё расставлю по фен шую .
    И проинтегрирую от минус бесконечности до плюс бесконечности -  и познаю дзен.

     
     
  • 6.145, burjui (ok), 18:36, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Парсер - далеко не самая сложная часть компилятора. При этом написанный вручную парсер будет быстрее, и для образовательных целей подойдёт лучше, т.к. даст понимание самых основ, в отличие от flex + yacc. У генераторов парсеров (особенно yacc) традиционно проблемы с выдачей внятных сообщений об ошибках, для чего приходится дополнительно повозиться.
     
     
  • 7.147, arisu (ok), 06:36, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > При этом написанный вручную парсер будет быстрее

    далеко не факт.

    > и для образовательных целей подойдёт лучше

    и опять не факт. смотря чему «образовывать».

    > т.к. даст понимание самых основ, в отличие от flex + yacc

    собственно, как раз не даст. потому как у генераторов ясно видна грамматика, а заодно можно (даже если не сильно хочется, то всё равно придётся, скорее всего) хотя бы минимально прокачаться в понимании матюгов типа LL(1), LR(1), LARL(1), etc.

    > У генераторов
    > парсеров (особенно yacc) традиционно проблемы с выдачей внятных сообщений об ошибках

    O_O
    нет, конечно, если путать синтаксический разбор и семантический анализ, то тогда всё будет печально. но зачем?

     
  • 6.159, count0krsk (ok), 19:13, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И проинтегрирую от минус бесконечности до плюс бесконечности -  и познаю
    > дзен.

    Поздно, я уже познал, и дверь запер. Так что "Убежище переполнено. Укрывайтесь в складках местности" )))

     
  • 3.48, Аноним (-), 08:29, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > сейчас коммунизм (см. GPL).

    Совсем плохой?

     
  • 3.93, Kodir (ok), 18:26, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В FOSS е процесс создания софта куда интереснее 1 Озаботиться какой-то пустяко... большой текст свёрнут, показать
     
     
  • 4.97, Аноним (-), 18:36, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Красивый батхертик маздайного быдлoкодераса :)
     
  • 4.102, Какаянахренразница (ok), 19:59, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  В FOSS'е процесс создания софта куда интереснее!
    > ...

    В самый раз!
    "Ему хватило ума прожить жизнь как попало" (C)

     
  • 4.109, Crazy Alex (ok), 20:31, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слушай, ну смени уже дилера, как-то паршиво тебя торкает, судя по потокам бреда.
     
     
  • 5.161, count0krsk (ok), 19:17, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нормально всё, я улыбалсо ))
     

  • 1.10, Аноним (-), 21:38, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Руй же.
     
     
  • 2.46, Аноним (-), 07:53, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    С китайского Жуй.

    Учтите китайский: "Жуй (Rui) — китайская фамилия (клан)"
    https://ru.wikipedia.org/wiki/%D0%96%D1%83%D0%B9

     
     
  • 3.49, 11111111111111111111111111 (?), 08:36, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    рано еще китайский учить. наше поколение без него проживет. вот внукам, наверное, уже придется учить в принудительном порядке :)
     
  • 3.53, Аноним (-), 08:50, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это японец, а не китаец.
     
  • 3.63, клоун (?), 13:31, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В китайском у каждой гласной 4 варианта произношения (тоны). И 3 звука, аналогичных русскому "ж". Так что русское "жуй" и китайское "жуй" - это два разных по произношению "жуй".
     
  • 3.108, arisu (ok), 20:26, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > С китайского Жуй.

    японец очень озабочен тем, как его имя звучит на китайском.

     

  • 1.12, ваноним (?), 21:58, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    к 8-му марта спешили... =)
     
  • 1.13, neon1ks (ok), 22:04, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Меня, как любителю языка Си, это новость порадовала. 8)
     
     
  • 2.14, MADMAN (ok), 22:14, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не только тебя одного :)
     
  • 2.16, Аноним (-), 22:19, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Меня, как любителю языка Си, это новость порадовала. 8)

    В смысле ты любишь смотреть, как работает программист?

     
     
  • 3.39, Куяврег (?), 04:50, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    или как компилится
     
  • 3.54, Аноним (-), 08:51, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Меня, как любителю языка Си, это новость порадовала. 8)
    > В смысле ты любишь смотреть, как работает программист?

    Угу. А еще как горит вода и как течет огонь.

     
     
  • 4.98, Аноним (-), 18:37, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Угу. А еще как горит вода и как течет огонь.

    Тогда идеальная работа для тебя - быть шефом пожарного подразделения :)

     
     
  • 5.104, Аноним (-), 20:14, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Разжигать пожары и тушить воду, что ли? ;)
     
  • 2.80, Amonimus (?), 16:00, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Меня, как любителю языка Си, это новость порадовала.

    Грамарнаци от такого спряжения застрелился.

     
     
  • 3.162, count0krsk (ok), 19:18, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Грамарнаци от такого спряжения застрелился.

    И придёт МойДодыр с умывальником, и накажет наглеца ))

     

  • 1.17, Аноним (-), 22:20, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Когда начнут оптимизировать, станет таким же монстром, как gcc )
     
  • 1.18, Аноним (-), 22:21, 01/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть Tiny C Compiler и lcc зачем еще один?
     
     
  • 2.19, CrazyAlex25 (ok), 22:28, 01/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Так tcc вроде забросили, а значит не будет добавлен C11
     
     
  • 3.35, Аноним (-), 00:54, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Так tcc вроде забросили, а значит не будет добавлен C11

    Для мизерного наколенного компилера это не самая большая из проблем. Для начала там качество кодогенерации обычно таково что оно годится только как действующий макет "а я что-то тоже скомпилять могу!"

     
     
  • 4.42, seyko2 (ok), 05:27, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то пилят потихоньку. А как компилятор tcc фактически turbo cc. Ядро 2.4.26 (минимальная конфигурация) собирает за 30 секунд. И оно работает (грузится) на реальном железе. Собирает сам себя в конфигурации cross-compilers (набор компиляторов arm, x86 и x86_64 для linux и Windows) приблизительно за тоже время. Включает в себя функциональность as, ld и с-компилятора с препроцессором. Сравним с временем сборки gcc и binutils хотя бы для одной архитектуры, оценим выигрыш во времени сборки сишного кода (приблизительно на порядок) и получается компилятор дла этапа разработки или JIT-компилятор для С.

     
     
  • 5.125, Аноним (-), 23:16, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Звучит примерно как чувак в ластах и противогазе взбегает на скользкую горку за... большой текст свёрнут, показать
     
  • 5.165, Led (ok), 01:33, 06/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ядро 2.4.26 (минимальная конфигурация) собирает за 30 секунд.

    Собери ним x86_64-ядро, а потом приходи.

     
     
  • 6.166, seyko2 (ok), 09:03, 06/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то текущий tcc и x86 ядро 2 4 26 собирает только при наложении патча Pa... большой текст свёрнут, показать
     

  • 1.37, 888 (?), 01:51, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Жуй Уияма (Rui Ueyama)

    Руи Уэяма

     
     
  • 2.45, Аноним (-), 07:52, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Португальское имя Rui транслируется в Руй, а китайское в Жуй. Например, Жуй Ван, Жуй Найвэй

    Rui Ueyama китаец, поэтому транслируется в Жуй.

     
     
  • 3.51, Аноним (-), 08:46, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Точно? А почему в полном имени больше трёх слогов? Да и фамилия звучит как японская.
     
     
  • 4.52, Аноним (-), 08:48, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Точно? А почему в полном имени больше трёх слогов? Да и фамилия
    > звучит как японская.

    Точно, японец:

    > Места проживания
    > Карта мест, где жил пользователь
    > Сейчас
    > Mountain View, CA, USA
    > Раньше
    > Shibuya, Tokyo, Japan - Matsudo, Chiba, Japan

    https://plus.google.com/+RuiUeyama/about
    Так что не Жуй, а Руи.

     
     
  • 5.56, Аноним (-), 10:42, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Lui тогда уж. У японцев L заменяется на R, так как нету буквы такой и звук R произносится как у российского пациента логопеда.
     
     
  • 6.57, Аноним (-), 10:59, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты идиот? Японские らりるれろ ближе к русским ра-ри-ру-рэ-ро, а звука L в японском как раз и нет.
     
     
  • 7.64, клоун (?), 13:35, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В японском нет ни "л", ни "р". Их звук нечто среднее между двумя русскими.

    Задача системы Поливанова в том, чтобы японец понял японское слово, записанное русскими буквами и прочитанное русскоговорящим человеком. Русское "л" часто проглатывается, а "р" рычащее, в японском звук не проглатывается и не рычащий. Из двух зол выбрали меньшее - "р" - пусть лучше японцев коробит что звук рычащий, но они поймут слово, чем они вообще его не поймут.

     
     
  • 8.81, Аноним (-), 16:22, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Неверно Их звук 8212 нечто намого, НАМНОГО более близкое к русской Р, чем к ... большой текст свёрнут, показать
     
     
  • 9.83, клоун (?), 16:56, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Говоря ближе-дальше, мы говорим о функции расстояния Она есть Но то, как она р... текст свёрнут, показать
     
     
  • 10.91, Аноним (-), 18:13, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разве что в клоунском училище Когда я учился в институте, и еще раньше 8212 ... текст свёрнут, показать
     
  • 9.134, арик (??), 10:42, 03/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    не скажу за всю ипонию, но вот у гакта часто проскальзывает смягченное л в сло... текст свёрнут, показать
     
     
  • 10.144, Аноним (-), 12:00, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Песни 8212 то совсем другое дело В песнях и китэ превратится в киитэ , а ... текст свёрнут, показать
     
  • 8.103, YetAnotherOnanym (ok), 19:59, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не люблю участвовать в клевании одиночки, но тут не соглашусь Сколько раз слыша... текст свёрнут, показать
     
     
  • 9.124, клоун (?), 23:13, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Съезди один раз в Японию и все эти слышал , Рабинович по телефон напел пройду... текст свёрнут, показать
     
     
  • 10.142, Аноним (-), 00:31, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, явно слышится Р Да, это не совсем русская Р, но это ближе к русской Р или ... текст свёрнут, показать
     
  • 10.149, Какаянахренразница (ok), 14:29, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Я живу в Японии Японская р звук, добываемый касанием языка к верхним зубам с... текст свёрнут, показать
     
  • 9.126, клоун (?), 23:21, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И как бы явственно не звучало Шакуган но Шана, к японскому ближе Сякуган но Сяна... текст свёрнут, показать
     
     
  • 10.141, Аноним (-), 00:16, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Брехня К японскому ближе Шякуган но Шяна А что Поливанов не догадался, что это... текст свёрнут, показать
     
     
  • 11.148, клоун (?), 13:28, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Японцы считают иначе Разговор закрыт Тур поездка в Японию всё включено на 2... текст свёрнут, показать
     
     
  • 12.150, Какаянахренразница (ok), 14:32, 05/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Исчерпывающий список японцев, считающих иначе в студию Охренеть какой серьёзн... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (19)

  • 1.44, Аноним (-), 07:31, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А где там в исходниках глянуть непосредственное формирование исполняемого elf файла ??
     
     
  • 2.70, Hoboh3zefahB3zoh (?), 14:33, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Он запускает ассемблер в main:
    execlp("as", "as", "-o", outfile, "-c", asmfile, (char *)NULL);
     

  • 1.58, Какаянахренразница (ok), 11:53, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Недурственно. Он компилит местами лучше, чем pcc, который здесь хвалили пару месяцев назад. При том, что pcc пилят десятилетия.
     
  • 1.74, Аноним (-), 14:56, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    когда уже бинарные чиста в стандарт внесут и соотв в компилер?
     
  • 1.76, Аноним (76), 15:00, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    числа, извините очепятка
     
     
  • 2.78, клоун (?), 15:12, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Исходя из написанного, вы - очепяток. Не знаю что это, но надеюсь что-то очень обидное.
     
     
  • 3.84, Аноним (76), 17:36, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    нет, не обидел, спасибо за урок
     

  • 1.77, Аноним (76), 15:07, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    из новости непонятно, он нацелен на обеспечение всех возможностей С11 или уже обеспечивает?
     
     
  • 2.89, Какаянахренразница (ok), 17:55, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > из новости непонятно, он нацелен на обеспечение всех возможностей С11 или уже
    > обеспечивает?

    Он компилится только компилятором, который поддерживает -std=gnu11 или хотя бы -std=gnu1x, значит в его исходном коде есть что-то, требующее С11. При этом он умеет компилировать сам себя, значит [как минимум] некоторые возможности С11 он уже поддерживает.

     

  • 1.82, Аноном (?), 16:35, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    годное название )
    :-)8<  


     
  • 1.85, Аноним (76), 17:40, 02/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    скоро написать компилятор С будет курсовой
     
     
  • 2.92, Hoboh3zefahB3zoh (?), 18:15, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Уже: http://sources.codenet.ru/download/3508/Translator.html
     
     
  • 3.94, Аноним (76), 18:29, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    неуежли сдал? а как же оптимизация? сейчас вроде всё в неё упирается
     
     
  • 4.123, Kodir (ok), 22:44, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это только с дивана жизнь кажется простой. На деле даже парсер (при всём обилии теории) - проблема (хотя бы тех же рекурсий). Затем, через пень-колоду написав грамматику, переходишь к геморою построения АСТ, т.к. оно должно быть не только исчерпывающим и удобным, но и стремительным как бабка перед единственным пустым местом в трамвае! Т.е. теперь имеем ещё тиски по скорости для адекватной поддержки IDE. Затем кодогенерация: обход дерева - не самое сложное, тут надо представить код так, чтобы потом оптимизатор не свихнулся.
    Короче, стоит только реально взяться за компилер и даже "язык черепашки" становится чертовски неподъёмной задачей.
     
     
  • 5.128, Аноним (-), 23:30, 02/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Так занять пустое кресло тоже бывает непростой задачей. Если это трамвай - ну там еще зад можно притулить. А если это свободное кресло пилота истребителя или КВСа гражданской авиации - попробуй еще пристрой туда свой зад. А если это космический полет - конкурс ж..п на место и требования к ж...м могут быть не самыми тривиальными. Вот видишь - может быть сложно даже плюхнуть свой зад в кресло, если хочется кресло получше трамвайного.
     

  • 1.130, Аноним (-), 00:31, 03/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Рей Аянами молодец.
     
  • 1.143, Брат Анонпитонер (?), 10:57, 04/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Молоток парниша. Привязка под python будет? )))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру