The OpenNET Project / Index page

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

Визуальное сравнение грамматики Ruby с Java, JavaScript, Python и Си.

28.10.2006 22:07

Nick Sieger, воспользовавшись пакетами ANTLRWorks и GraphViz, создал визуальную модель грамматики языка Ruby, для сравнения проделав туже операцию для языков Java, JavaScript, и Python.

  1. Главная ссылка к новости (http://blog.nicksieger.com/art...)
  2. ANSI C grammar dependency graph
  3. Python grammar dependency graph
  4. Javascript (ECMAScript) grammar dependency graph
  5. Java 1.5 grammar dependency graph
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/8641-ruby
Ключевые слова: ruby, grammar, python, java
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Алексей (??), 01:38, 29/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жалко для С++ не проделал. :)))
     
  • 1.2, voyt (ok), 01:52, 29/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нифига не видно.
     
  • 1.3, CR (?), 02:41, 29/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень познавательные картинки, жаль только, что цифр рядом нет -- число узлов, число связей, диаметр графа было бы интересно узнать.

    Видно, что си -- самый простой в смысле грамматики язык, питон от него не сильно отстаёт.  А вот у руби уже раза в два больше узлов, и зависимости переплетены нипадеццки.  Жабаскрипт сравним по сложности с руби, но как-то более структурирован, ну а жаба давит своей монументальностью.

    Теперь понятно, что меня всегда раздражало в руби ;)

     
     
  • 2.6, gvy (?), 15:21, 29/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь понятно, что меня всегда раздражало в руби ;)
    Гм, а что, интересно?  Поскольку из комментария о "структурированности" JS похоже, что Вы восприняли картинки как-то художественно (мне вот колбасы почти не связанных нод больше подсказывают насчёт этажерок из костылей, которые при написании надо держать в голове и выстраивать в нужном порядке -- и которых в руби действительно немного).

    Правда, сам ни разу не являюсь знатоком языков и тем более парсеров/трансляторов, просто от ruby первый раз за много лет возникло сильное положительное ощущение "это можно давать детям".  Наверное, впервые после Modula-2, на которой когда-то изрядно написано, и в яркую противоположность C++ и Java, от попыток посмотреть на которые мою слабую крышу начинало попросту срывать.

    В питоне раздражает слепливание семантики с синтаксисом, но как бы "не нравится -- не ешь", вот и забросил. ;)

     
     
  • 3.7, pavlinux (??), 17:58, 29/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Ассемблер был бы такой этажеркой где каждая полочка соединена со всеми остальными и сама с собой. (только чистый, без фишки сall @function)

      

     
  • 3.8, bakake (?), 09:26, 30/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Мда, поймать бы того гада который дал модулу тем детям которые повзрослев написали cvsup... И по рукам, по рукам.
     
     
  • 4.12, gvy (?), 13:09, 01/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Мда, поймать бы того гада который дал модулу тем детям которые повзрослев
    >написали cvsup... И по рукам, по рукам.
    Не нравится -- не пользуйте? (да и вроде ж другие дети, повзрослев, переписали его)
     
  • 4.14, nuclight (ok), 09:09, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    А чем вам не нравится cvsup? Стабильное, выверенное годами приложение, реализующее весь нужный функционал и кучу разнообразных проверок на ошибки при очень небольшом размере в скомпиленном виде - и ему за годы не потребовалось что-то исправлять. А csup (попытка переписывания нс Си) чуть ша г в сторону, валится в корку (проверки на ошибки, ага), и реализует не весь функционал.
     
  • 2.9, northbear (??), 11:36, 30/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Хех... Вы похоже не правильно поняли семантический смысл сих картинок. Например, цепочка примитивов без ответвлений означает, что эта цепочка семантически избыточна и ее можно заменить одним словом. Большее число связей означает бОльшую гибкость языка, т.е. при за счет ограниченного числа ключевых слов можно передать большее число семантических конструкций.
    Проведите аналогию с обычным языком. Если в классическом русском языке число значений слов меньше и соответственно сочетаемость с другими словами тоже ограничена. А обычный бытовой русский значительно гибче, число значений некоторых слов очутимо больше. Ну и сочетаемость... Весь юмор в русском языке на этом построен.

    Понятно что во всем должна быть "золотая середина". Можно представить и сравнить как выглядит подобная картина для perl'а и как бы выглядела она же для Forth или какого-нибудь Logo.

    Как говорится почувствуйте разницу...

    А вообще занятно... Хотелось бы по другим языкам глянуть и сравнить.

     

  • 1.4, бОПОЙН (?), 12:38, 29/10/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что же перла--то и C++ нет?
     
     
  • 2.5, CR (?), 13:11, 29/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Вычислительной мощности не хватило :)
     
  • 2.10, northbear (??), 11:41, 30/10/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >А что же перла--то и C++ нет?

    Ну мне кажется для С++ все должно быть довольно простенько. Там ключевых слов по сравнению с другими языками относительно немного, остальное все библиотеки.

    А вот perl, это должно быть, что-то...

     
     
  • 3.11, mman (?), 01:18, 01/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    "Only perl can parse Perl" (c) Он BNF не описывается.
     

  • 1.13, Аноним (-), 13:38, 06/11/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эти картинки ничего полезного не дают - ну связи, ну овальчики... Привыкнуть можно к любому синтаксису, были бы библиотеки.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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