Evgeny_CD, Архитектор (02.12.2007 12:30, просмотров: 193) ответил AVR на У меня многие подпрограммы имеют такую функциональность - разные точки входа, а еще и точки выхода в зависимости от того, куда был вход. Но для этого нужно владеть языком не просто высокого, а высочайшего уровня - Ассемблером :))
Да нет, для этого надо владеть метапрограммированием. Есть "яркие точки" - какие-то ключевые моменты, которые определяют существо программы - границы логических блоков, точки перехода, вызовы, возвраты, переменные за пределами блока команд.
А есть рутина - некие локально-значимые операции над ограниченным набором данных ("умещается на одном экране"). Они могут быть написаны на чем угодно - от Lisp до ASM, сути это не меняет.
Высшее искусство - это когда есть две согласованные тулзы - в башке и на пЫсюке - чтобы МГНОВЕННО переключаться между представлениями - (яркие точки)<->(рутина).
Можно это сказать иначе. Есть задача, и есть пространство примитивов, в которых эта задача легко и понятно описывается.
А есть пространство примитивов языка программирования. Которое всегда несовпадает с пространством примитивов задачи (за исключением DSL - domail specific language).
Так вот, важно low overhead переключаться между пространствами. чтобы когда Вы думаете надо логикой задачи, вам не мозолили моск конструкции языка программирования. А когда вы думаете о том, как бы сподручнее использовать 1к ОЗУ на кристалле - чтобы моск не растекался "мыслею по древу" в заоблачных высотах, а считал такты, биты, байты и пр.
Потом щелк - и вы опять в пространтве высших примитивов.
Еси хотите, это тот самый сумрак, куда ныряют герои Дозоров.
Вот этому надо учить программистов! Это и есть высшее знание. А сама технике владения тем или иным языком - это так, ремесло, мануфактура. Но важная - если не уметь ездить на велосипеде, то никакой силой мысли пешком не догнать велосипедиста.
Хотя настоящий мастер докажет себе и инвесторам - нам и не нужен тот вЫлосЫпЫдЫст. Ты сидя на месте попадем туда, куда вЫлосЫпЫдЫст будет год ехать :)