Упрямо говорю, что не везьде и не всегда ЭТО собирается. Моё второе окружение: Linux OS 'Ubuntu 9.04', компилятор g++ (gcc версия 4.3.3 (Ubuntu 4.3.3-5ubuntu4)). Переношу код и пытаюсь компилировать: Опять неудача. IQ # IQa Это коэффициент полезности для исходного кода, которые используется другими людьми. Я предлагал задуматься о пустой трате времени из-за несовершенства передачи исходного кода на другие компиляторы! И проблема не в Вас, а в том, что не передается ВСЯ необходимая информация фрагмента кода. Поэтому и собрать не могу. В VC попробую. На windows xp установлена. И, согласен с вами, вы правы: для написания кода всегда нужно окружить себя качественной литературой, справочниками, примерами и т.д. И это все должно быть удобно в IDE. Здесь VC можно похвалить за вызов фонда описаний и примеров для языков. Взялся за FASM, т.к. система команд x86 имеет сейчас очень обширные команды. И для качественного,-компактного, быстрого кода,-нужно использовать кроме p-кода базовую платформу, главную часть системы, центральный процессор. Реалиазация p-кода не всегда отвечает современным представлениям об оптимальном коде. Можно реализовать стековую (виртуальную) машину множеством способом. И для конкретного процессора можно и нужно предлагать макросы на ассемблере. В базе знаний программиста будет возможность зафиксировать поиск программистами лучшей реализации p-кода. И для каждой реализации будет свой IQa.
а вы б таки не упрямились, а таки послушали что вам говорят. уже писал выше, что мингв гцц это спокойно компилирует без ошибок и ворнов. хотя слинковать не пробовал. давно не собирал на гцц для выни. не помню как это. alloca - обычный аллокатор памяти из стека. есть множество моментов, когда он - наилучшее или единственное решение. то, что вы считаете подобные решения бесполезными просто говорит о круге задач, которые вам приходилось решать до сих пор. этот фрагмент кода я не понял. видимо, сказывается несовершенство передачи. не могу ничего сказать насчет этого. никогда не пробовал себя окружать. никогда не мог заставить себя прочесть больше нескольких страниц из учебника. насчет иде тоже ничего не могу сказать. пишу в блокноте/фаре/мс. компилю из ком строки виртуальные машины бывают/могут быть не обязательно стековые. просто стековые наиболее простые в описании и, обычно, именно они разбираются в учебниках. вот халтурщики и копипастят именно эту архитектуру. реализация п-кода полностью и целиком отвечает представлениям того, кто ее проектировал/разрабатывал. те, вообще говоря, их реализация может быть абсолютно любой и ограничена только бедностью фантазии ее архитектора. например, ваш хмл, вполне, может быть рассмотрен как пкод и над ним может быть надстроена вм. единственно, что останавливает - его значительная неоптимальность для использования со стороны машины. что кроется под расплывчатой идеограмой "современные представления об оптимальном коде" я не понял изза чего мог пострадать ответ. расскажите немного о. желательно простым языком, как в магазине за пиво с огурцами. вы таки почитайте насчет языка пл. его историю. цели создания, попытки реализации. как и от чего такая замечательная идея загнулась. лучшая для чего? вы вообще осознаете, что их может быть не просто много, а очень много? от очень простых, до очень сложных, ценных, например, именно своей сложностью? вы б таки разобрались как делать из бб отдельные независимые прилоги. без не относящегося к делу окружения. еще лучше - состоящие из одного ехе, хотя это и не обязательно. заодно и проганье подтянете, чтоб меньше видеть маловажного и простого. такого недостойного вашего слишком ценного для нас времени.
Попытка №3. Код (Text): // t2.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <malloc.h> void foo2(); int foo1(){ char *p1, *p2, *b = alloca((char*)&foo2 - (char*)&foo1); for(p1 = (char*)&foo1, p2 = b; p1 < (char*)&foo2; *p2++ = *p1++); return ((int (*)())b)(); } void foo2(){} int _tmain(int argc, _TCHAR* argv[]) { foo1(); return 0; } Опять неудача! Простой перенос кода в VC 2008 и не удалось без ошибок компилировать. Это уже симптомы... Я показал Вам, что три попытки для разных компиляторов и мне не дается собрать проект. Что делать? Я конечно доверяю Вашим словам, но практика - отрицательный результат. Причина не в Вас, а в самой организации и хранения проектов. И мы с Вами мучаемся три дня. Так не должно быть! Если бы Вы написали код, например в компонентном паскале, BlackBox, мы бы уже давно обсуждали свойства работающего приложения, измеряя метрику: скорость работы, потребляемая память и др. С проектами на С++ всегда имеет вот эту "подводную скалу". Проекты не собираются без мозговых усилий и мозолей на подушечках пальцев. Давайте выполним попытку №4 и вы поделитесь кодом, который нормально будет компилироваться со всеми компиляторами. Рост. Обучение начинающих. Код (Text): Print "Программистами не рождаются, а становятся". Всегда есть процесс обучения программеров. Любой проект - это и развитие человека. Когда он "войдет в тему", только тогда становится экспертом и "гуру". И хвала учебникам, учителям, которые от "печки" объясняют: "Как это работает? Как это устроено внутри?". Они не халтурщики, а стараются по умственным силам давать пласты знаний о программировании. В будущей базе знаний программиста этот момент будет вложен в поведение IDE. Если Вы новичок и отношение к вам будет дружественным. Будут обширные ссылки на электронные ресурсы: справочники, примеры, переписку, списки вариантов решения конкретной задачи, например использование примера " alloca()". По оценке IQa можно будет выбирать лучший код и сравнивать между вариантами реализации что бы "почувствовать разницу" в качестве кода. Во внешней обработке для макроязыка 1С экспорта данных справочников в дамп MySQL была реализована возможность выбрать автора фрагмента кода экспорта и сравнить. Любопытно было. Последний вариант самый эффективный и правильный даже для большого объема данных. Это и будет питательная среда для рост программистов при работе с базой знаний программиста. Вы сами ответили. Из-за или ограниченности навыков программистов, или не было достаточно времени на проекты реализация конкретного компилятора несовершенна. Занимаясь анализом исходного кода компилятора Странник "Модула-Паскаль-С++" http://home.perm.ru/strannik/ и тестирую его, обратил внимание на ограниченное использование команд процессора x86. Автор использовал простой способ реализации и оптимизации трансляции внутреннего сематического дерева в код ASM. Компилятор "Странник" не знает другие команды и многие конструкции языка программирования реализует простейшим и неэффективным путем. Можно найти и наиболее оптимальный конечный код. Ну почему же загнулась? В инструменте Clarionhttp://clarion.ru/ (внутри есть компиляторы Clarion ,С++, Modula-2 в конечный код 'exe') P-код основной механизм, который прекрасно работает.
любезно предоставляю вам платформонезависимый вариант Код (Text): #ifdef __GNU_C__ #include <alloca.h> #else #include <malloc.h> #endif #include <stdio.h> #include <string.h> void foo1() { char *p1; p1 = (char*) alloca (1024); strcpy (p1, "Hello, World!"); printf("%s\n", p1); } int main() { foo1(); } (исполнение кода на стеке я убрал из Вашего сэмпла - это плохо и закончится криком DEP) компилируется на ура Visual Studio 2008 а так же и MinGW 5.1.6 наслаждайтесь. а все из-за одного #ifdef, который надо добавить, потому что авторы компилеров, мать их, не договорились, в какой хидер помещать прототип. а можно самому указать прототип (но снова нужен ifdef - в MSVC эта функция зовётся _alloca, а не alloca) Код (Text): #ifdef __GNU_C__ void* alloca (size_t size); #else void* _alloca (size_t size); #define alloca _alloca #endif да, кстати, советую для начала изучить язык, на котором пишешь) а так же как работает компилер. если компилер упорно не находит alloca, очевидно, ему нужен прототип, а у тебя и прототипа самого нет и не включен хидер с ним (одно из двух поможет, ага). так что неча на зеркало пенять, как говорится.
Great не стоило. это самый цимис, поскольку это хорошее выполнение кода в стеке. такое обязательно надо включать в туторы для особенных. да и деп бы свиснул только в 64битке с выставленным депом. vladfind http://256.ru/playtime/m-grabli.php цитата намекает, что вы довольно не далеки от истины.
vladfind напишите лучше несколько туторов по проганью в бб. с асмом в там и прочими вкусностями. начиная с того, что я спрашивал выше. это будет действительно интересно и полезно. PL - это http://chernykh.net/content/view/210/222/ , а не то, что вы там ссылили.
Другое дело! Вашему приложению даю IQa = 90 Код (Text): linux:~/edu_cc$ gcc t1.c -o t1 t1.c: В функции ‘foo1’: t1.c:13: предупреждение: несовместимая неявная декларация внутренней функции ‘alloca’ Ошибка все-таки имеется, но уже близко к прототипу модели коллективной работе на исходными кодами: (а) - Исходный код из не рабочего преобразовали в рабочий (б) - Были добавлены важные части кода, после чего образовалось свойство переносимости (в) - Исходный код имеет комментарий автора и описание работы, а также рекомендации для последователей (юных программистов). Результат у меня в linux: Код (Text): linux:~/edu_cc$ ./t1 Hello, World! Творческая задача для BlackBox у меня следующая. Выполнить генерацию лексического и парсинг анализатора. Далее перенести исходный код BB в XML формат и обучить утилиту вытащить из исходного дерева проекта TEXT подсистему. Уж очень она мне нравится. Это что-то напоминает формат web, когда имеется возможность смешивать исходный код программы с мультимедиа ссылками и ресурсами. Научиться транслировать исходный код на BB в листинг макроассемблера и далее получить exe приложение. У BlackBox есть инструмент компиляциив EXE через внутренний компилятор и сборку проекта. Часто это срабатывает и можно создавать законченные приложения и библиотеки. А самое главное - работаю над изчунием ANTLR и формированием описания грамматики FASM168_01.g и описанием набора команд IA32-64 x86 процессора. Есть желание исходный компилятор flat assembler 1.68 преобразовать в XML представление и сгенирировать компилятор клон с использованием ANTLR и библиотеки xml-tools. Если кому интересно, то приглашаю поучаствовать: проверить файл грамматики, обсудить идеи, подсказать о реализации fasm1.68.
vladfind капец. даже не начавший быть новичком, не могущий скомпилить прогу из 3х строк, по часу выгугливающий простейшие команды отлично описанные во встроенных хэлпах. и втупую качающий права требуя оплаты за собственную полнейшую некомпетентность. гыгы, пишущий супер-ии (а какже. ии, который будет сам, автоматически писать другие ии). с важным видом раздает IQ, учит прогать.. даж не знаю как к этому относиться.. фарс какойто. в целях сохранности теленочка посчитаю шутовством школьника, прикидывающегося очччень взрослым. еще раз вам говорю. по русски. асм транслируется таблицами. никаких сложных структур там нет. и в фасме весь парсер это 3-4 таблицы. можете тупо скопипастить их. выглядят гдето как typedef struct { char* command_name_mask; int (*command_hex_emmiter)(...); } Command; Command com_tbl[] = { {"aaa", aaa_emmiter}, {"add", add_emmiter}, ... итд }; ничего сложного. можно еще в масках регулярки положить с передачей параметров в эмитеры. но даже тут максимум сложности парсера - re2c поучаствуйте лучше в написании небольших туторов по bb. там не одна только text подсистема интересна. но без возможности использовать это чудо коммерчески - оно не юзабельно и подохнет несмотря ни на каких "роботов-иванов"
И, так, ответы в порядке поступления. (*) - Компетенция моя здесь не причем. Вы прочитали введение в базу знаний программиста? http://www.robot-ivan.narod.ru/overview.html Конспектно высказался о задачах проектирования базы знаний. Свои проекты выполняю на работе и исправно получаю вознаграждение "за трудовой подвиг с 8 до 9 утра". Последний проект - взять несколько проектов с операционной системой реального времени, которые написаны разными программистами на языке Си (ARM-ядро) и слепить прибор на продажу с лучшими модулями. Проекты "выпекались" годами и с нуля писать неразумно. тем более поставили сжатые сроки. "Время-деньги"- поговорка известная. Вновь обнаружил, что с повторным использованием исходных кодов, документацией и реальным состоянием проектов просто неудовлетворительная ситуация! Внедрил систему контроля версий 'git'. Внедрил создание проектной документации 'doxygen' для преобразования в html дерево с поиском по проектам. Выполнял "грязную" работу по расчистке и рефакторингу исходного кода. Создал набор тестовых утилит для определения качества и поиска узких мест в реализации программного проекта. Ручной работы много и такой способ производства П.О. - каменный и малоэффективный способ побеждать на рынке и делать "конфекту". (**) - Самообучение. Обучение. Рост квалификации. - Жаль, что Вы не поняли посыла. Программистами не рождаются! Нужно расти, развиваться, осваивать новые технологии. Область производства П.О. имеет высокую скорость появления и технологий создания качественного и надёжного софта в очень короткие календарные сроки. Не всегда программисты желают осваивать новые знания. Собственно это нормально - обычная человеческая инерция. Сегодня купил очередную полезную книгу в свою библиотеку Роберта Мартина "Чистый код. Создание, анализ и рефакторинг". Вот цитата: Поэтому "выгуливаю", как Вы метко подметили простые команды и куски кода для полного прояснения и получения "чистого программиского сознания". Хотелось бы сознание и практический опыт "втереть" в базу знаний программиста... (***) - Контекст у меня, послание, было не в области "корыстного и материального", а по теме экономии чужого времени, т.е. моего. Вы передали мне кусок кода, который в явном виде не собирался. Так сказать бросили в меня идею, а результаты тестируй и исправляй типа сам. И это Ваша не доработка... (****) IQa это оценка полезности приложения. Не IQ Вас как "чела" и продвинутого программиста, а оценивает числом от 0 до 100 потребительской полезностью конкретного куска кода. Это одна из интегральных метрик программного обеспечения. Многие компьютерные журналы имеют свои оценки полезности программного обеспечения. И для базы знаний программиста мною предлагается новая интегральная метрика. Цель этой метрики понять ценность фрагмента, библиотеки, проектов на любом диалекте языка программирования. IQa позволит накапливать и коллективное мнения "гуру", экспертов. А для обычного пользователя открытых кодов объективно брать лучшее в свои проекты с полной уверенностью что они не только соберутся на целевой операционной системе, но с будут надежно и быстро работать. (****) - Это вечный процесс. Кто-то учит, кто-то учится. Мне важно сейчас научиться создавать свои компиляторы или развивать, например fasm, для задачи создания прототипа базы знаний программиста "Иван".
vladfind читать ваше идеегенераторство мне неинтересно. особенно, учитывая ваш тяжелый на желудок водянистый слог. то же самое относительно вашего оптимизма насчет вашей работы и ваших доходов. не особенно верю вашим уверениям в вашем профессионализме. сами знаете почему. история про кучу совершенно разных реалтаймок и кучу сложнейшего по под них, которое вы свалили в кучу под лозунгом "халтура == деньги" тоже не без солидного элемента сказки. если бы у вас была куча действительно разных реалтаймок с серьезно пришитыми к ним сложными прогами, то простое сваливание их в кучу вам бы обошлось куда сложнее, дороже и дольше, если бы вообеще дало результат, чем написание всего нужного функционала набело, возможно, с небольшими копипастами, возможно, поверх нормальной оськи. учитесь немного больше. те учитесь себя. ученик не должен учить ибо учеба это внутрь, а не наружу. и малоэффективность может потерять приставку мало-. а насчет великих побед на рынке, порабощений мира и прочих фантазий комплексующих пионеров, то учитесь у бг. он не делает конфетки. он их просто перепродает. вот самый лучший "робот-програм-вано". никакой ручной работы. насчет макулатуры не скажу. в голове слишком мало места, а в жизни времени чтоб тратить их на всякий мусор. больше пишите сами. больше читайте чужих сорцов. больше дебугайте. во всех смыслах. спец литера, типа кнута. но уж точно, не часовое выгугливание и капризные оправдания непониманию следующего кода ; ecx == size mov eax,1000h - 1 and eax,ecx sub esp,eax mov eax,1000h @@: mov [esp],al sub esp,eax sub ecx,eax jnz @b mov eax,esp ваше время имеет цену меньше бутылки пива. если вы перестанете экономить его на вещи, которые развлекают не только вас и конкретно напрягают в направления, что вам укажут, то ваше время, действительно, приобретет небольшую ценность. вы это узнаете по тому, что вам ваша важность и ценность станет безразлична целиком и полностью охххгггг. и как жу оно мерится? и зачем оно вообще нада? и толку вас этой полезности, если в проге вам придется использовать абсолютно бесполезный или даже антиполезный код? или будете заливать заказчику, как последними постами мне, насчет IQ, ужасных потерь времени и о! моральных утрат на разбирательства с простейшими библиотечными функциями. и прочей ерунды? впрочем, все халтурщики умеют позаливать насчет своей важности и чужой неправильности. тем и живут. угу угу. ктото и таб умножения до смерти выучить не может. о великие учетили! куда ж вечно без вас? кстате, а скоко бут 7 * 8 = ? а грижтар знает, что вы его фасм без него развиваете? ассемблер не компилятор по сути. обычный табличный транслятор. только оптимизация переходов немного интересна. есть книжки по этой теме. например очень простое и хорошо написаное постепенное введение в компиляторостроение от 0 содержится кроме всего прочего в буке кернигана и пайка "юникс - программное окружение". если ее выгугливание займет у вас > 5 минут - бросайте. у вас время слишком ценное. потратьте его на что нибудь более ценное для вас. преф, там ну, а потом напрашивайтесь к комуто в команду по компилерам/интерпрерам. там из вас или выбьют дурь, или вы сами бросите эту невероятную потерю вашего драгоценного времени и изобильные моральные утраты. да, в бесплатную команду. кстате говоря, чего я вообще разговор этот продолжаю. пробежав по диагонали эту ветку, я так понял, что вы неплохо вникли в бб. вплоть до ядра, где обитает уже код на асьме. признаюсь, мне интересны обероны и бб в частности. посему спрашиваю вас еще раз мы дождемся от вас коротких постепенно охватывающих разные стороны бб, вплоть до ядра и применению асма в бб, стороннего кода (с[++]) итд от вас? или все это зряшно? или такое среди вас возможно только от воображаемого хмля? это меня интересует. не съезжая с базара, напишете ли вы их или не по силам? иле только супер-гипер-переусложненные(переизвращенные?) в реализации супер-ии в воображении достойны ваШой драгоценности и ослабленной моральности?
Повторное использование кода. В этом вопросе у нас большая разница в оценке времени исполнения проекта. "Набело" переписывать проекты. которые уже продаются да ещё в сжатые сроки - полный Ваш "переоптимизм". И зачем тратить время на переписывание уже готового функционала!? Работодателю это совершенно не интересно. Сопровождение проекта и добавление новых свойств (а приборы успешно продаются) - вот что ожидает заказчик софта. Сам проект прибора на MicroC/OS-II (процессор ARM, CAN-интерфейс, COM-протокол с защитой от потери пакетов, ADC преобрахователь, управление лампой, управление шаговым двигателем, пользовательский интерфейс и др.) состоит из нескольких тысяч строк кода на Си. Если всё писать с Т.З. то срок от 12-18 месяцев как минимум... Простите, но в быструю реализацию одним программистом я не верю! Не стыкуется с практикой. Быстрое нажатие на клавиши не поможет создать и написать нужный код по Т.З. в сжатые календарные сроки. Ремарка: "Халтура" - явление советского способа доп. дохода. Сейчас заказчик требовательней и, правильно, хочет за реальные деньги, услуги и товары достойного качества. Уважение. Многие руководители, а часто и коллеги, совершенно не уважают результаты труда программиста. Книги пишут, особенно уважаемые и авторитетные программисты, не дураки. У нас здесь также большая разница в способе повышения уровня квалификации. Или Вы уже в "кубе спец.программист". Простите, не верю. так что я поучусь у коллег, книги почитаю, Интернет использую для роста и приобретения опыта и навыка писать хороший код, использовать проверенные программные технологии. Фундамент и основы Сейчас масса ремесленников-программистов и всех их кормит рынок. Самоучек пруд пруди. И это нормально, по-моему. Однако просто "жить в чужом коде" без собственной стратегической идеи и подхода, без базовых основ - дилетантство. Так что я поучусь писать компиляторы, освою новые программные технологии. А Ваш код - полуфабрикат. Берите пример с Great. Он компилируется и исполняется. Компилятор 1. ГОСТ 19781—90 ОБЕСПЕЧЕНИЕ СИСТЕМ ОБРАБОТКИ ИНФОРМАЦИИ ПРОГРАММНОЕ - http://www.rugost.com/index.php?option=com_content&task=view&id=47&Itemid=50 (1) - Компилятор - это программа или техническое средство, выполняющие компиляцию. (2) - На заре развития компьютеров первые компиляторы (трансляторы) называли «программирующими программами» (так как в тот момент программой считался только машинный код, а «программирующая программа» была способна из человеческого текста сделать машинный код, то есть запрограммировать ЭВМ (3) - «В.И.Юров "Ассемблер практикум"» - Цель книги — дополнить учебник Ассемблер того же автора практическим материалом, используя который можно разрабатывать сложные полнофункциональные программы для различных операционных платформ. Каждая из двенадцати глав практикума посвящена определенной прикладной теме. Исчерпывающе рассмотрены вопросы организации взаимодействия программ на ассемблере с внешним миром. Приведены варианты ассемблерной реализации многих известных и востребованных на практике алгоритмов. Изложение базовых вопросов прикладного программирования сопровождается рассмотрением ряда интересных примеров. А Вы говорите: "...обычный табличный транслятор ". Это полноценный инструмент для программиста. Для систем реального времени - единственный инструмент для оптимизации подсистем. BlackBox и спецы Как и рекомендовал Вам пиши Илье Ермакову - http://forum.oberoncore.ru/memberlist.php?mode=viewprofile&u=3 на форум http://forum.oberoncore.ru или сайт http://metasystems.ru или автору с ником Info21 - http://forum.oberoncore.ru/memberlist.php?mode=viewprofile&u=17 Они глубоко знают BB и умеют интегрировать с WinAPI.
Код qqwe из его поста ничуть не хуже (умный человек легко сообразит, что нужно заинклудить). То, что Вы не умеете компилировать программы и (о боже!) банально гуглить (а если погуглить минуту, то можно найти инфу о том, что в gcc alloca лежит в alloca.h, а в msvc - в malloc.h) - сугубо Ваша проблема. Учитесь гуглить, учитесь учиться и будет вам счастье.)
vladfind фиг его знает что вам сказать. видно только, что пальцы перед лохами гнуть вы научились. стоко понту из какогото копипаста. это и есть халтура. скидать по-быстрому в кучу чужую работу, замазать самые крупные дыры и выписывать о своей важности и нужности подобного подхода, даж не понимая смысла половины употребленных слов. это халтура, а совсем не "советский.." - как вы там насочиняли? да, и не морочте голову работодателями. они оч редко понимают чтото в проганьи. если будет внешне красиво, не бсоднет на сдачах и вы все красиво протреплетесь, то вы в полном вине. но только мы тут не работодатели и ваши разглагольствования не особо впечатляют. 1.5 года писать код на пару штук строк С-кода это интересно. если прибор уже давно в серии и продаже, то количество вашего вклада в него в принципе не может быть большим. ладно, в любом случае, с С вы мало знакомы, так что все это лишнее. меня интересовали ваши заявления о вашей компетентности в бб, но, похоже, вы и тут просквозили. не даром так упорно стрелки переводите. учитесь. мне что? просто на асмах вы компилеры писать не научитесь. весь компилер пишется таблицей и 20тью строками кода безо всяких там компилер компилеров. причем, даже проще, чем компилер компилерами. а транслятор он потому, что буквально переводит одни символы в другие. те, буквы в коды. кыстате, хексредактор тоже полноценный инструмент програмиста. и, не исключено, что гдето описан. кас, вроде, про хью в какойто буке писал. молитесь. ф принципе, я понял, что вы за карась. туторов вы по бб не напишете ибо бб вы не знаете. слышали гдето чтото и уже пальсами машете. не интересно. учитесь дальше писать парсеры для перевода 'ret' --> c3 можете ради интереса взглянуть ешше на LLVM. прямую ссыль, надеюсь, давать не надо? не отнимет "g llvm" половину вашей невероятно бесценной жизни?
Ещё раз с этого момента хочу внести ясность. Во-первых, наконец-то, Вы вернулись к обсуждению сущности исходного кода программы и конкретного диалекта языка программирования. Во-вторых, мы разобрали крошечный пример и выяснили, что при исключении заголовочного файла из проекта программу нельзя собрать. В-третьи, я предлагал посмотреть на исходник с точки зрения дерева исходника программного проекта, чтобы была 100% переносимость. А Вы переключаете разговор на обсуждение автора этого поста. Т.е. оцениваете уровень человека-программиста. Предлагаю вернуться к теме технология программирования, качество программных проектов, увеличение производительности, технологии компилирования и т.д. статьи Е. Зуева на тему "Как мы писали компилятор переднего плана C++" произвели на меня должное впечатление. тем более позднее узнал, что Е. Зуев был сотрудником группы Н.Вирта и прекрасно ориентируется в инструментальных мировых тенденциях. Цитата из поста "Автоматическая кодогенерация программ с использованием XML" http://forum.oberoncore.ru/viewtopic.php?f=28&t=140&start=20: С блога Е. Зуева - http://zouev.blogspot.com/2008/09/blog-post.html Страуструп о будущих средах программирования В августе позволил себе короткий отпуск и взял с собой книгу Страуструпа Дизайн и эволюция языка C++. Вроде, в свое время читал ее (просматривал), но в этот раз обнаружил совершенно замечательный раздел, который раньше как-то прошел мимо меня. Он пишет в точности о том, что сейчас занимает все мои "профессиональные" мысли! Форматирование текста с соблюдением некоторых правил отступа - лишь один из многих возможных взглядов на программу. Простейшее применение этого замечания: текст программы, который каждый из пользователей видит отформатированным в своем любимом стиле, а вы - в вашем. Не текстовое представление могло бы быть создано языками более высокого уровня, генераторами программ, инструментами визуального программирования и т.д. Ну, и обычными компиляторами переднего плана, разумеется. Это позволило бы таким инструментам работать в обход обычного синтаксиса С++ и даже помогло бы избавить язык от некоторых неудачных особенностей его синтаксиса. Я утверждаю, что система типов и семантика С++ чище, чем его синтаксис. Из этого пассажа можно сделать такой вывод: семантику С++ можно представить в виде, не зависящем от конкретного синтаксиса, который несет тяжелый груз языка-предшественника, неудачного дизайна, за которым шлейф философии и привычек миллионов программистов. Если для этого использовать какую-нибудь систематическую общеупотребитель ную нотацию (например, XML), то может получиться нечто, что можно назвать семантическим синтаксисом С++. Более того: такое описание я как раз сейчас делаю. И должен сказать, что получаю громадное удовольствие, на каждом шаге наглядно наблюдая, как обсыпаются многочисленные корявые и громоздкие синтаксические конструкции языка, обнажая естественное и стройное здание семантики С++... Я пока не знаю точно, каково может быть практическое применение этого семантического синтаксиса. Впрочем, его можно рассматривать, как формальную запись семантического представления С++, которое сейчас используется в продуктах Интерстрона. Кроме того, на основе этой нотации разрабатывается новое семантическое представление, которое будет использоваться в системе программирования следующего поколения. /quote]
2050 год. Компания Майкрософт разработала новое поколение интеллектуальных сред разработки... П: Программер >: Компилятор П: Привет, горе-компилятор! >: Привет, мегакакер... пардон, мегахакер П: Ты это с издевкой, что ли? >: Ну что ты, ни в коем случае (u!S@e#R.f%O^O&l==t*r{U}e) П: Это что было в конце? >: Это я чихнул П: Ладно, хватит лясы точить, скомпиль мне какую-нить прогу >: Скомпилил! П: Уже? >: Я мощный компилятор П: И что она делает? >: Выводит на экран "хyй тeбe" 10 раз П: Дур-р-рак! >: А что, не нравится? П: Нет, удали ее нахрен >: Исполнено, мой господин П: Хватит кривляться >: А я не могу иначе, namespace Reflection не позволяет П: Что? Впрочем, неважно. Создай объект какой-нибудь, что ли... >: Создал П: Что создал? >: Кнопку П: И где она? >: В памяти, где ей еще быть... П: Ну так покажи >: Для этого нужно форму создать П: Слушай, я тебе что, все по шагам объяснять должен? >: Ладно, вот тебе форма П: Вижу. А где кнопка? >: Garbage Collector захавал, пока я форму создавал...
Привет всем... Я страшный ассемблерщик!!! Я сам по книжкам написал и закомпилил Хело Ворд...))) А теперь по теме... Где и кому могу задавать вопросы так, чтобы не быть черезчур надоедливым Вам...и получать реальные и чёткие ответы???