Обоснование синтаксиса и семантики языка Python для задачи прототипирования и реализации сложных программных комплексов
Общая постановка задачи
Разработка прототипа сложной программной системы, включающей в себя:
- Развитую объектную модель
- Интеграцию с различными подсистемами платформы запуска (сетевой, мультимедийной и т. .п)
- Возможность дальнейшего развития и модификации как в прикладной, так и в системной части
- Возможность использовать прототипы при разработке конечного продукта как в качестве моделей, так и в качестве готовых компонентов (при условии соответствия требований)
Требования к синтаксису и семантике языка разработки, вытекающие из общей постановки
- высокий уровень абстракции и современная объектная модель;
- возможность применения как технологий быстрой разработки, так и наукоёмкого планирования и реализации;
- высокая читаемость исходных текстов и сопряжённой технической документации; наличие средств автоматического документирования;
- высокий уровень интеграции с системными и прикладными инструментариями.
Синтаксические характеристики языка Python, отвечающие требованиям
- Более жёстко, чем в большинстве традиционных языках программирования, заданные правила разметки исходного кода повышают его читаемость.
- Средства внутреннего документирования предусматривают (при соблюдении надлежащей дисциплины) автоматическое составление технической документации; поддерживается несколько систем технического и общего документирования.
- Высокий уровень абстракции данных (на уровне синтаксиса поддерживаются списки, ассоциативные массивы, множества, генераторы, итераторы, декораторы и т. п.) приводит к компактности кода и позволяет избежать ошибок сверхобъёмного планирования.
- Модульность построения приложений делает удобной командную разработку и применение средств быстрой разработки; все популярные среды разработки имеют поддержку Python. Дополнительно модульность делает задачу переработки прототипа в конечный продукт.
Семантические характеристики языка Python, отвечающие требованиям
- Современная объектная модель (используется латентная типизация, динамическая организация классов, метапрограммирование, перегрузка операций и пр.) позволяет реализовать гибкое объектное планирование.
- Поддерживается несколько систем модульного, регрессионного и комплексного тестирования (включая встроенную), что обеспечивает командную дисциплину разработки надёжной базой.
- Базовая поставка содержит порядка 300 модулей, реализующих предметные и системные абстракции, интеграцию с низкоуровневыми библиотеками и платформами запуска, что позволяет соблюдать единый стиль разработки, используя другие системы и среды только в случае необходимости (например, для реализации критичных по ресурсопотреблению, быстродействию или иным параметрам компонентов конечного продукта).
- База сторонних модулей содержит более 10000 свободно лицензированных приложений к сотням предметных областей. Это позволяет значительно повысить повторное использование кода при решении более-менее популярных системных и прикладных подзадач.
Прочие характеристики языка Python, отвечающие требованиям
- Свободное лицензирование базовой поставки Python и большинства внешних модулей делает возможным масштабированное использование готовых разработок, в частности, в качестве компонентов прототипа и конечного продукта.