войти зарегистрироваться

Разработка(Как написать (Lisp) интерпретатор (на Python))



Перевод статьи "(How to Write a (Lisp) Interpreter (in Python))" Питера Норвига. В данной статье Питер довольно кратко, но емко описывает принцип работы интерпретаторов и показывает как можно написать совсем крошечный (всего 90 строк на Python) интерпретатор подмножества языка Scheme. Перевод публикуется с разрешения автора.

Питер Норвиг (англ. Peter Norvig) — американский ученый в области вычислительной техники. В данный момент работает директором по исследованиям (ранее — директор по качеству поиска) в корпорации Google. Ранее являлся главой Подразделения вычислительной техники в исследовательском центре Амес NASA, где он руководил штатом из двухсот ученых, занимающихся разработками NASA в областях анатомии и робототехники, автоматизированной разработке ПО и анализа данных, нейроинженерии, разработки коллективных систем, и принятия решений, основанном на симуляции.

Ненормальное программированиеПишем интерпретатор Brainfuck на Lua из песочницы

image
Каждый программист за свою жизнь успевает изучить множество языков, в нескольких из них специализируется и продолжает работать продолжительное время, а остальные проходят мимо. По разным причинам. Стоит ли тратить время на изучение новых языков, когда уже определился с областью в которой будешь работать? Лично я уверен что стоит, хотя, быть может, многие скажут что важны фундаментальные знания в computer science, а на каком языке писать код не критично. В сущности так и есть. И тем не менее изучать языки интересно и полезно.

Pythonbpython

image bpython — это красивый и функциональный интерфейс к стандартному интерпретатору Python для *nix. Он распространяется под Лицензией MIT и обладает следующими интересными возможностями:



  • In-line подсветка синстаксиса
  • Автодополнение кода с предложениями
  • Автовыравнивание кода
  • Pastebin
  • Сохранение введённого кода в файл
  • Восстановление удалённой строки («Rewind»)
  • Предложение параметров для функций