GDB/MI, структуры, строгость и круглые скобки

За прошедшую неделю в думах над моим проектом в голове накопилось несколько мыслей, о которых мне хотелось бы сейчас написать:

  • стоит ли стремиться к строгой работе с GDB/MI?

  • окоченевшие строки, или в поисках Лиспа;

  • как заблудиться в исходниках GNU Emacs;

  • Special: Java-ад расширения Eclipse CDT.

Много думал, много расстраивался, но в итоге что-то, кажется, понял. Закрепляю мысли сей заметкой.

Читать далее
Комментарии

Немного мыслей о GDB/MI

GDB/MI выводит информацию в весьма структурированном виде. Например, информация от фреймах, возвращаемая командой -stack-list-frames, выглядит так:

(gdb) 
-stack-list-frames
^done,stack=[frame={level="0",addr="0x0804868f",func="hello",file="hello.c",fullname="/home/sphinx/projects/gsoc/hello.c",line="6"},frame={level="1",addr="0xb7faa900",func="start_thread",from="/lib/libpthread.so.0"}]

Выглядит хорошо! Как с этим работать?

Читать далее
Комментарии (3)

(>:3)

Get-in-the-closure

Комментарии

Использование API Semantic в Emacs для обработки исходных текстов

Semantic — часть CEDET, унифицированный API в Emacs для работы с исходными текстами. Semantic предоставляет прослойку высокого уровня над низкими процедурами лексического анализа исходников. В составе Semantic есть написанные на Emacs Lisp подобия lex(1) и yacc(1), так что чтобы добавить поддержку нового языка к Semantic, требуется описать его грамматику и определить некоторые специфичные для разбора сорцов на этом языке процедуры (документация по Semantic содержит всю необходимую информацию).

Читать далее
Комментарии (3)

((λ (x) (x x)) (λ (x) (x x)))
Комментарии (3)

Lexical scoping в Scheme

Пример:

guile> (define a 2)
guile> (define (froboz) (* a a))
guile> (define (braphat) (let ((a 3)) (froboz)))
guile> (braphat)
4

Но:

guile> (define (braphat) (let ((a 3)) (* a a)))
guile> (braphat)
9
Комментарии

Знак

В разводах мраморной отделки станции метро я сегодня увидел λ.

Время изучить Лисп?

Комментарии
Всего 7 записей с тегом «Lisp»