Найти - Пользователи
Полная версия: Критический взгляд на код со стороны
Начало » Python для новичков » Критический взгляд на код со стороны
1
meleodr
Уважаемое сообщество!
Знает ли кто-нибудь из вас ресурсы, посвящённые адекватному разбору и критике чужого кода? (ибо неконструктивно критиковать у нас все горазды)

Вообще говоря вопрос вылился из решения задачи — написать код LR(k) - анализатора(см. прикреплённый файл). В коде скорее больше математики, поэтому возникает второй вопрос — можно код такого типа писать правильнее?

Собственно, буду рад услышать комментарии и по не-математической части при беглом взгляде.
GaiveR
Знает ли кто-нибудь из вас ресурсы, посвящённые адекватному разбору и критике чужого кода?

http://codereview.stackexchange.com/


При совсем беглом взгляде бросается в глаза разный стиль именования функций и отсутствие докстрингов - читать код становится не очень приятно.
sergeek
оформление да, если и нарушать pep-8 то нужно хотя бы сделать все это в едином стиле. Таким циклам
for i in range(len(ls))
вроде бы предпочитают
for i,e in enumerate(ls)
Нашел вот генератор __UpdateFirst возращающий одно значение, если нет ошибки с отступом. Когда Вы его там на создаете, то сразу вызываете следующее и единственное значение, мне, кажется, это бессмысленно и его можно просто заменить на функцию.
Это же вроде бы парсер, да? Для какого языка это? Он действительно работает? Я писал когда-то парсер для питона, но там у меня были громадные регэкспы и я плохо представляю как можно без них обойтись. Начинал как-то читать про вот эти анализаторы, но, встретив много непонятных слов забил на это.

meleodr
Нашел вот генератор __UpdateFirst возращающий одно значение, если нет ошибки с отступом. Когда Вы его там на создаете, то сразу вызываете следующее и единственное значение, мне, кажется, это бессмысленно и его можно просто заменить на функцию.
Полностью согласен с замечанием, благодарю.

Это же вроде бы парсер, да? Для какого языка это? Он действительно работает? Я писал когда-то парсер для питона, но там у меня были громадные регэкспы и я плохо представляю как можно без них обойтись. Начинал как-то читать про вот эти анализаторы, но, встретив много непонятных слов забил на это.
Это анализатор, который принимает на вход произвольную LR(k)-грамматику и строит для неё так называемые таблицы Action и Goto, по которым впоследствии можно осуществлять синтаксический разбор (построение дерева вывода) любого слова, принадлежащего данной грамматике.
Ну и заодно это мой зачёт по ТРЯПу2
meleodr
Плюс в том, что этот алгоритм, придуманный Кнутом, если мне не изменяет память, —
а) Доказан.
б) Работает за линейное время.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB