Эквивалентность программы на ЯП и кода на выходе компилятора
От: salog  
Дата: 08.04.08 03:52
Оценка:
Тема реально философская. Как-то это можно сформулировать в математических терминах и возможно есть даже мат.теории на эту тему, но я не знаю как.
О чем речь.
Допустим вы что-то пишете на языке программирования типа С++. И вы точно знаете — если вы добавляете код в программу, то соответствующим образов в результирующем коде на выходе компилятора код будет практически пропорционально содержать кода (функций) больше. Если вы описываете функционирование программы как либо в ЯП, то в воплощенной программе функционирование (действия) как и структура (взаимосвязь) частей почти точно будут повторять те же взаимосвязи в исходнике.

Теперь представим ситуацию — исходники существуют сами по себе, а программа на выходе — не есть пассивная копия исходников, а как бы живет своей жизнью (притом разумной, хотя и не до конца контролируемой). Например, возможны "фазовые переходы": т.е. при нарастании кода в исходниках объемность кода и сложность структуры программы — взаимоотношеия частей — могут до какого то момента соответствовать исходникам, а потом после некоторого момента резко (фазово) перестаиваться и упрощать (или усложнять — при наличии собственной базы знаний у компилятора и ситуационного контекста) внутреннюю структуру самостоятельно (интеллектом компилятора).
Или другой пример (хотя речь идет о том же самом): исходники могут задавать сколь угодно сложную взаимосвязь частей, а результирующий код будет содержать эквивалентную по функциям, но ИНУЮ (не обязательно упрощенную) структуру взаимосвязи и функционирования.
Что то подобное работает при оптимизации кода, логических выражений булевой алгебры, но я задаюсь "проблемой" распростарнения этого подхода на функциональную структуру в целом.

Жду любых соображений...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.