metaclass: (Default)
[personal profile] metaclass
Посетила странная мысль - если стек вызовов в программе становится слишком глубоким (не считая рекурсий по данным, видимо), это означает, что уровень абстракции, предоставляемый используемым инструментом разработки, не соответствует решаемой задаче.

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

Date: 2009-11-15 03:33 am (UTC)
From: [identity profile] smalgin.livejournal.com
Разве это уровень абстракции? Вы просто озвучили правильную и неправильную инкапсуляцию, не?

Date: 2009-11-15 06:48 am (UTC)
From: [identity profile] oldmann.livejournal.com
ребе, какой еще хаскель в шабат ночью?

Date: 2009-11-15 04:46 pm (UTC)
From: [identity profile] vp.livejournal.com
Весьма здравая мысль, кстати. Я в смысле по поводу такого критерия.

Date: 2009-11-15 06:13 pm (UTC)
From: [identity profile] udpn.livejournal.com
Это не странная мысль (, это в тебе пробуждается Сила, юный джедай). Был бы единый репозиторий библиотечного кода со злыми супервизорами и возможность кросс-оптимизации программы и библиотеки.

Date: 2009-11-16 03:23 pm (UTC)
From: [identity profile] black-angel-by.livejournal.com
ребе, вы еще "Теория представлений групп" почитайте :) ваша область выноса мозга :)

Date: 2009-11-16 08:27 pm (UTC)
From: [identity profile] kkirsanov.livejournal.com
А как выглядит отладка хаскелевской программы?

По идее монады+ленивые вычисления должны порождать такую лапшу, что традиционная отладка в принципе будет бессмысленна.

Date: 2009-11-16 08:33 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да по идее, через unsafePerformIO в лог писать в нужных местах.
Хотя я бы это дело на уровень компилятора засунул, в виде функции, эквивалентной id, но с записью в какой-нибудь внутренний лог, со стеком/графом вызовов.

Date: 2009-11-17 10:06 am (UTC)
From: [identity profile] tonal.myopenid.com (from livejournal.com)
Это называется Debug.Trace (trace, traceShow)
Но таки советую совоить ghci :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 25th, 2025 04:24 pm
Powered by Dreamwidth Studios