настройка языка кодирования - PullRequest
2 голосов
/ 29 февраля 2012

Меня всегда интересовало это с тех пор, как я начал писать код: есть ли способ настроить глубокие части языка на ваш вкус.

Например, я пишу код в основном на Python и хотел бы использовать | или: символы для обозначения границы набора. Я часто использую наборы и ненавижу печатать set(some_list) или явно set([a,b,b,c,d]). Я использовал s(), установив s = set, но это не сработало бы, если бы я работал над кодом, который другие должны были бы прочитать.

Возможно, было бы достаточно надстройки текстового редактора "переводчик", которая бы сохраняла 2 копии вашего кода, одну со своим собственным синтаксисом и одну со стандартным синтаксисом. Что-то подобное существует? (особенно для питона)

Ответы [ 2 ]

6 голосов
/ 29 февраля 2012

Четкость и читаемость - очень важная черта в рабочем коде.Помните, что на чтение существующего кода обычно затрачивается гораздо больше усилий, чем на написание нового кода.Техническое обслуживание - это серьезное соображение.

Имея это в виду, выполнение чего-то вроде s = set и использование s () вместо set () не добавляет функциональных преимуществ и наносит ущерб удобочитаемости, предлагая только экономию пары.нажатия клавиш.Я думаю, что вы понимаете это на каком-то уровне, но часть вас не желает принимать дополнительные нажатия клавиш во имя читабельности.

Я призываю вас рассмотреть что-то вроде макроса, чтобы вам было легче нажиматьтолько один ключ, все еще производя тот же код.Что-то вроде клавиатуры Logitech G15 / G110 / G19 даже позволяет вам делать это независимо от используемого вами редактора, поэтому вам не нужно дополнительное программное обеспечение.Несколько мышей позволят вам сделать что-то подобное (о, как мне нравится мой Razer Naga ).Конечно, базовая функция макросов в программном обеспечении также будет работать, но вы, вероятно, нажимаете комбинацию клавиш, чтобы сделать это, и просто набираете набор (возможно, быстрее в любом случае.

1 голос
/ 29 февраля 2012

Можно действительно настроить свой язык так, как вам нравится.Некоторые языки предоставляют мощные возможности метапрограммирования (к сожалению, Python не входит в их число).Взгляните на макросы Lisp, или Nemerle, или Converge (последний наиболее близок к Python).Некоторые языки, такие как Katahdin, даже позволят вам легко изменять сам синтаксис.

Но этот тип мощности не следует использовать для мелких изменений - это ухудшит читабельность и не добавит каких-либо существенных преимуществ.,Гораздо лучше использовать метапрограммирование для реализации встроенных предметно-ориентированных языков, предпочтительно с отличительным синтаксисом, поэтому для читателя будет очевидно, когда вы используете базовые языковые конструкции и когда это код eDSL.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...