Код как structured data

6yrop

В ушедшем в архив треде меня за термин "код является structured data" . Читая wikipedia обнаружил, что там используется такая же терминология:
This feature is effective when it is easy to predict the word being typed based on those already typed, such as when there are a limited number of possible or commonly used words (as is the case with e-mail programs, web browsers, or command line interpreters or when editing text written in a highly-structured, easy-to-predict language (as in source code editors).
http://en.wikipedia.org/wiki/Autocompletion

IntelliSense works by accessing an automatically generated in-memory database of classes, variable names and other constructs defined in or referenced by the application being edited.
http://en.wikipedia.org/wiki/IntelliSense

В wikipedia тоже ахинею написали?

serega1604

википедия не делает различий между языками на structured и non-structured. а твоим собеседникам это и не понравилось вроде.

6yrop

Естественно, это не битовое свойство да/нет, а есть некоторая степень структурности языка: есть языки более structured, есть менее structured.

elenangel

вы в этом совершенно sure?

6yrop

да. У вас есть опровержения?

6yrop

У вас есть опровержения?
если у тебя нет контр примера (или доказательства обратного то я могу привести свое доказательство.

6yrop

естественно, интересно не просто наличие структуры, а возможность создания соответствующей базы данных на современном оборудовании

Anturag

есть языки более structured, есть менее structured
1) Как ты определяешь метрику, чтобы практически можно было сравнивать два языка?
2) Есть ли примеры «non-structured» языков с контекстно-свободной грамматикой?

Dasar

2) Есть ли примеры «non-structured» языков с контекстно-свободной грамматикой?
скрипты, например.

Anturag

Мог бы ты влезть в детали и объяснить, почему ты скриптовые языки с контекстно-свободной грамматикой (речь о языках, а не о программах, верно?) называешь «non-structured», я этого не понимаю.

6yrop

1) Как ты определяешь метрику, чтобы практически можно было сравнивать два языка?
Сравниваем соответствующие базы данных (ref1, ref2 если из первой базы данных некоторая информации однозначно извлекается, а из второй нет, то говорим, что первый язык более structured.
2) Есть ли примеры «non-structured» языков с контекстно-свободной грамматикой?
Я уже отметил, что фразу "код не является structured data" надо понимать, что не достигается некоторый порог структурности. Когда говорят, что бутылка пуста, это не означает, что в ней нет ни одной молекулы напитка.

Anturag

То есть ты ведёшь речь о программах, а не о языках per se?

Dasar

почему ты скриптовые языки с контекстно-свободной грамматикой (речь о языках, а не о программах, верно?) называешь «non-structured», я этого не понимаю.
Я скрипты отношу к менее структурированным из-за того, что из скрипта достаточно сложно выделить знание: какой структурой обладают значения, которые приходят в данный кусок кода?

6yrop

в subject-е вроде указано о чем речь

Anturag

Ну, понятно, я тоже считаю программы на C «non-structured», если для отступов используются пробелы, а не табуляция.

6yrop

я тоже считаю программы на C «non-structured», если для отступов используются пробелы, а не табуляция.
соответствующая база данных становится менее информативна?

Dasar

соответствующая база данных становится менее информативна?
Да, падает показатель информативность/затраты: возрастают затраты на получение блочной структуры из кода.

6yrop

машине же все равно

Dasar

машине же все равно
При программировании активно используется человеко-машинный комплекс. И соответственно очень важно насколько легко получают информацию как машина, так и человек.

6yrop

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

Dasar

машинной обработки достаточно
При такой формулировке задачи сразу становится не нужным интеллисенс, да и любая интегрированная среда вообще. Комбинации утилит cat < /dev/console и gcc более чем достаточно.
сложно определить критерии для сравнения способов извлечения информации человеко-машинный комплексом
Основной критерий - это время. Чем меньше времени (как для человека, так и для машины) требуется для получения той или иной информации из кода, тем лучше.

6yrop

При такой формулировке задачи сразу становится не нужным интеллисенс, да и любая интегрированная среда вообще. Комбинации утилит cat < /dev/console и gcc более чем достаточно.
ты о какой задаче? в этом и предыдущем тредах я лишь хотел подчеркнуть, что для одних языков программист может ожидать помощи от машины, а для других нет. И указал базис, который определяет объем этой помощи. Других задач я не формулировал. Эффективность в целом человеко-машинного комплекса это холиварный вопрос, поскольку не понятно как это измерять.
Основной критерий - это время. Чем меньше времени (как для человека, так и для машины) требуется для получения той или иной информации из кода, тем лучше.

Это бесполезный критерий, поскольку это время нельзя объективно измерить.

Dasar

Измерить можно что угодно при наличии описанной методики, а без методики даже длину объекта не измерить.
ps
Сложность лишь заключается в том, что люди разные - и соответственно, есть трудность с тем, какого программиста брать за эталон. Но для решения этой проблемы можно брать опыт швейной промышленности, где вместо одного эталона берут сразу кучу - например, от B до F.

6yrop

Измерить можно что угодно при наличии описанной методики, а без методики даже длину объекта не измерить.
Проблема в методике и проведении таких измерений. В первую очередь важно отношение этой методики к реальной жизни.
Сложность лишь заключается в том, что люди разные

Люди не просто разные, они являются крайне сложными системами.
Но для решения этой проблемы можно брать опыт швейной промышленности, где вместо одного эталона берут сразу кучу - например, от B до F.

И ты туда же, полагаешь, что программирование можно свести к труду птушников. Это лишь свидетельствует о твоей птушной глубине познаний в программировании.

Dasar

> Проблема в методике и проведении таких измерений. В первую очередь важно отношение этой методики к реальной жизни.
Заметь, что тогда утверждение "У меня, -а, есть проблемы с созданием методики, применимой в реальной жизни, для измерения структурности языков" отражает действительность лучше, чем твоё более раннее утверждение:
Это бесполезный критерий, поскольку это время нельзя объективно измерить.

6yrop

Заметь,
я не замечаю такого

6yrop

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

salamander

Эффективность в целом человеко-машинного комплекса это холиварный вопрос, поскольку не понятно как это измерять.
Этим вопросом занимается область научного познания под названием human-computer interaction (HCI и методики числового измерения этой эффективности там уже давно придумали.
Я не являюсь специалистом в данной области, так что конкретные способы я не знаю. Но могу дать вот такую ссылку. В статьях, соответственно, числовые измерения проводятся, и методики описываются.

6yrop

Этим вопросом занимается область научного познания под названием human-computer interaction (HCI и методики числового измерения этой эффективности там уже давно придумали.
заниматься научным познанием и получить решение какой-либо проблемы это разные вещи.

salamander

Ты что сказать-то хотел? Мы вроде про вполне конкретную задачу говорим (измерить эффективность взаимодействия которая решена в HCI.

6yrop

Мы вроде про вполне конкретную задачу говорим (измерить эффективность взаимодействия)

тогда давай ссылку на решение, а не на библиографический список целой области знаний

6yrop

Я не являюсь специалистом в данной области
думаю, что если бы являлся таковым, то не говорил, что задача решена

salamander

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

Dasar

Ты чё злой такой, и кусаешься?
Задача сложная, объективизируется тяжело, с этим никто и не спорит.
Если хочешь, то можно попробовать в рамках треда набросать формулировку - как измерить структурность языка.
Или ты что-то другое хочешь? Что?
ps
Для меня структурность (пока интуитивная формулировка) - это возможность как можно быстрее получить в иерархическом виде:
- какие действия могут быть применимы к данному данному с получением различного результата;
- какие данные могут быть переданы в данное действие с получением различного результата.
По второму пункту в intellisense-а шарпа не хватает возможности быстро посмотреть всех наследников от типа параметра.

6yrop

По второму пункту в intellisense-а шарпа не хватает возможности быстро посмотреть всех наследников от типа параметра.
у ReSharper-а Go To Derived Symbol, Go To Implementation , View Symbol Hierarchy не подходят?

Dasar

у ReSharper-а Go To Derived Symbol, Go To Implementation , View Symbol Hierarchy не подходят?
По названию вроде подходит, спасибо! У меня, к сожалению, resharper не стоит, хотя ради такого можно и купить.
Оставить комментарий
Имя или ник:
Комментарий: