Блог им. sortarray

Чего не хватает в теории программирования

В программировании довольно плотно освещена тема иерархии программных сущностей. Это хорошо отражено в концепции наследования: в теории ООП подтип является частным случаем типа, и связан с ним отношением «является»(англ «is», например — кошка — это животное(его частный случай)).
Порождение этих обобщений лежит на совести программиста. И логично предположить, что следующим шагом, например в контексте ИИ, будет попытка научить делать эти обобщения компьютер.
Действительно, в человеческом мышлении это один из главных аспектов — выделение общности по неким общим признакам множества различных типов объектов, фактически, это является основой индукции(проверяем, что все слоны и мартышки имеют единое свойство  -- фиолетовый цвет кожи:) — выделяем общность: фиолетовокожие:) соответственно — слоны и мартышки — подтип фиолетовокожих:)) 
Но как ни странно, я никогда не сталкивался с исследованиями, которые бы плотно касались данного вопроса, нет ни подобной парадигмы, ни книг, ничего.

Встречались ли Вы с чем то подобным, и если да, что можно почитать по этой теме?
★1
9 комментариев
Опыта не хватает ;)
avatar
кластеризация, не? да и любое обучение без учителя подходит под описание. 
avatar
Alex Hurko, сомневаюсь:)
Нейросети вообще уже никто всерьез давно не воспринимает, после публикаций Мински

Не уверен, что следующим шагом именно в рамках программирования как на дисциплины (ну или чем оно там является) будет что-то индуктивное. Всё-таки программирование это однозначность и только однозначность. Да, ты можешь не понимать, как оно работает и почему, но это всегда дедуктивные вещи. Впустить индукцию в программирование это на мой взгляд как-то мегаконцептуально), наверняка в таком случае не только наследования это коснётся, но и много чего ещё. 

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

avatar
Replikant_mih, 
Всё-таки программирование это однозначность и только однозначность

Ну, это смотря в рамках какой отрасли. Именно в мейнстриме, в энтерпрайзе в эту сторону гнут, конечно, потому что так большие проекты собирать и майнтейнить проще, плюс производительность, соответственно все идет в сторону статики, но что касается именно ИИ, там ИМХО, всегда были  противоположные тенденции, там как можно больше старались спихнуть на сами программы, как бы дать программам как можно больше свободы, сама концепция, как бы, это предусматривает: как мы можем сделать программы умней, если ограничиваем их в принятии решений, в самостоятельности?

sortarray sortarray, Я, кажется, понял, или я неправильно понял или вы неправильно объяснили) — если речь о самих приложениях — то да, тут всё справедливо, там всё больше индуктивного, ИИ и прочего, но сам процесс разработки всё такой же. 

Ну или я опять ничего не понял))

avatar
Replikant_mih, Именно в ИИ больше индуктивного, да, там делается(делалось точней, так как ИИ уже фактически нет:)) ставка на то, что программа сделает как можно больше за программиста(но он должен это заложить), в том числе порождение объектов и кодогенерация в рантайме там обычная практика. В стандартной разработке — обратный процесс, там наоборот дизайн языков заточен на то, чтобы программист писал таким образом, чтобы компилятор мог все по максимуму разрулить во время компиляции, выявить ошибки синтаксиса, ошибки типов, оптимизировать код по максимуму и так далее.
sortarray sortarray, Понял. Похоже, что в т.ч. я не сильно шарю в предмете разговора)). В целом любопытно, подождем).
avatar
Random Forest

теги блога sortarray sortarray

....все тэги



UPDONW
Новый дизайн