|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[0] Язык и операционная система Необходимо написание новой книги по языку: существующие книги давно устарели, необходимо очень подробно, понятно и в то же время легко читаемо и без традиционной для российских книг зауми (самый rulez в этом плане Броуди) описать сложные технологии форт-программирования: написание ассемблеров, целевых компиляторов, форт-систем для специфических систем типа самодельных компьютеров и промышленных контроллеров, парсеров и синтаксических анализаторов, сложных расширений языка (например ООП), написание легко переносимых программ и т.п. Также думаю стоит большое внимание уделить современным технологиям в железе, особенно flex-технологии "гибкой логики" с использованием ПЛИС (CPLD, FPGA) и систем на кристалле (System on Chip, SoC). Кто готов участвовать в проекте ? Не обязательно автором - нужны также самые начинающие для обкатки разделов начального обучения, рассказы о практическом применении форт-технологий. Группа SynergyOS давно предлагала создать CD с коллекцией материалов по Форту - думаю он будет приложением к книге, там будет коллекция форт-систем для нескольких ОС, снимок этого сайта на момент выпуска диска, может быть фирмы, использующие Форт, тоже захотят включить туда свои материалы (копии сайтов, оценочные версии ПО, прайсы и рекламные материалы). Делатся это все будет по той же лицензии, что и документация на Linux (вариант GNU GPL для документации). Проект уже лежит в CVS, желающих участвовать в редактировании книги welcome регистрироваться. 1 Введение 1.1 версия 1 © <forth@km.ru> Язык программирования Форт1 широко известен многим современным хакерам, но не нашел широкого применения на обычных компьютерах. Объясняется это достаточно просто: язык первоначально был разработан как замена ассемблеру примерно в те же времена, что и язык C++2. Особенность Форта - система строилась как языковая среда, включающая компилятор, редактор, ассемблер, отладчик и средства операционной системы. Фактически классическая форт-система является полнофункциональной операционной системой3 со встроенным компилятором и командной оболочкой. Несмотря на то, что форт-система требовала очень мало аппаратных ресурсов (всего несколько десятков Кб памяти), и язык достаточно полноценен, на обычных персоналках он большого применения не нашел. Для начинающих программистов к сожалению выбрали BASIC, хотя Форт еще проще и в то же время работает намного быстрее. Профессионалы предпочли использовать C++, так как они изучали его при своем обучении, и решили что синтаксис Форта плохо читаем. Основная сложность - язык Форт обладает уникальным свойством саморасширяемости, поэтому для понимания исходных кодов чужих программ нужно понять, как автор программы расширил язык. Тем не менее во встраиваемых системах (системы управления различным оборудованием, робототехника, бортовое и наземное оборудование в космических исследованиях NASA) Форт до сих пор имеет достаточно широкое применение. Если вы занимаетесь такими вещами как разработка различных цифровых систем и программного обеспечения для них, вы можете столкнуться с ситуацией, когда вас не будет устраивать по каким-либо причинам обычно используемый в таких случаях инструментарий. Этими причинами может оказаться его дороговизна, неудобство, отсутствие каких-либо утилит, или для вашего железа не оказалось готовой ОС, компилятора и библиотек. В этом случае хорошим решением может быть использование языка Форт в качестве мощного макроассемблера или операционной системы. К сожалению, последняя книга на русском языке вышла в 1993 году, существующей литературы очень мало и она явно устарела. С другой стороны, в ней совсем нет примеров практического использования Форта и сложных техник форт-программирования (целевой компиляции, ООП расширений, написания ассемблеров, откомментированных исходников форт-систем для различных платформ). Очень часто возникают возражения типа "Форт слишком сложен в использовании", но он проще чем ассемблер, который до сих пор используют очень часто. Цель написания этой книги - собрать разрозненную информацию по языку Форт и показать как можно использовать этот язык в качестве мощного средства для создания программного обеспечения встраиваемых систем. Эта задача достаточно сложна, учитывая то что я не форт-гуру, но к сожалению гуру не хватает времени (а чаще желания) писать качественную документацию. Надеюсь что они все же примут активное участие в написании этого руководства. Буду очень рад, если кто-то захочет присоединится к работе над книгой: она изначально создавалась в on-line версии, для ее редактирования используется система управления контентом в виде CVS4-cepBepa и простейшего скрипта, генерирующего сайт [akps]. Все 1ФОРТ, Форт, Forth или FORTH 2Си или С++ 3ОС или OS 4http: www.cvs.ru версия 26 октября 2005 г.ФОРТ мои работы по языку также рассылаются через список рассылки сотр.soft.prog.forth5. Для работы над книгой необходимо участие начаинающих осваивать язык для обкатки учебных разделов, людей использующих или наоборот не использующих Форт по каким-то причинам для написания разделов по практическому применению форт-технологий, и вообще присылайте любые ваши вопросы, комментарии и замечания - мне необходима обратная связь. 1.2версия 2 © <forth@km.ru> Эта книга - попытка объединить несколько основных книг по языку Форт, выпущенных на русском языке. После 1995 года не было выпущено не одной книги об этом языке, но даже с учетом того что язык мало распространен6 и развивается очень медленно, эти книги все равно устарели. Использовать Форт имеет смысл в достаточно узкой области, где используются маломощные компьютеры с очень небольшими объемами памяти (8- 16 -битные процессоры, десятки и сотни Кб ОЗУ). Язык очень низкоуровневый, поэтому если вам доступен полноценный компилятор C++, лучше использовать его, а не Форт. Применять Форт можно в том случае, если не доступен готовый компилятор C++ - Форт отличается крайней простотой внутреннего устройства и синтаксиса, поэтому написать компилятор Форта можно буквально за полчаса (см. [akps]). Еще один вариант использования Форта - в качестве операционной системы, написав интерактивную форт-систему. При этом вы получаете командный интерфейс, встроенный компилятор и набор runtime библиотек, объединенные в очень компактную операционную систему. 1.3Из [orange] Материал книги построен для использования ее в качестве справочника так, чтобы охватить весь набор средств и приемов и полный перечень слов и функций языка. Кроме того, приведены примеры расширения языка и использования Форта в качестве средства разработки программ и как операционной системы. И все же многие утверждают, что Форт труден для изучения. Для этого имеется несколько причин. Опытным программистам Форт зачастую дается труднее, чем новичкам, потому что он отличается от других языков программирования по самой своей природе. Хотя в языке Форт нет каких-либо присущих только ему сложностей, программисты с трудом отвыкают от переменных, подпрограмм, многословного текста на исходном языке, алгебраических обозначений и прочих атрибутов привычных им языков. Если вы знаете другие языки программирования, попробуйте к языку Форт подойти с полной отдачей. Освойте понятия стека и определения слов, прежде чем переходить к более сложным вопросам. Забудьте всякие предубеждения, которые у вас могут возникнуть, вроде того, что для хорошего языка программирования обязательно нужна операционная система и файловая поддержка. И не беспокойтесь о блок-схеме, начните с небольших задач, ваш опыт будет накапливаться постепенно. Форт может показаться трудным, так как это достаточно мощное средство программирования. Действительно, все возможности языка изучить трудно, но все они и не потребуются, чтобы писать очень полезные программы. На Форте можно научиться писать программы на уровне хорошего программиста, пользующегося языками BASIC и FORTRAN, быстрее, чем на любом другом языке. Так же несложно программирование на форт-ассемблере 5http: www.subscribe.ru/lists/comp.soft.prog.forth 6хотя и широко известен |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||