Синтаксис, семантика и прагматика

О языке

Python — современный язык программирования, работающий на всех распространенных операционных системах для настольных компьютеров. Язык программирования Питон разрабатывается чуть более 20 лет. В настоящее время активно используется две версии языка — более старая версия 2 и современная версия. Версия 2 более не развивается, но до сих пор ещеиспользуется, поскольку очень много программного обеспечения и библиотек разработано именно для версии 2. Между версиями есть существенная несовместимость, в том числе в синтаксисе команд ввода-вывода (программа на языке Python 2-й версии может не работать в 3-й версии и наоборот), но в целом они очень похожи. Мы будет использовать именно версию 3, как более современную и совершенную.

Python — современный универсальный интерпретируемый язык программирования. Его достоинства:

1. Кроссплатформенность и бесплатность.

2. Простой синтаксис и богатые возможности позволяют записывать программы очень кратко, но в то же время понятно.

3. По простоте освоения язык сравним с бейсиком, но куда более богат возможностями и значительно более современен.

4. Богатая стандартная библиотека, возможность разработки промышленных приложений (для работы с сетью, GUI, базами данных и т.д.)

 

Python — один из самых простых и лаконичных языков. Научившись писать на нём в одну строчку сложные программы, которые на C и Pascal занимают десятки строк, вам уже не захочется добровольно возвращаться к этим языкам!

Большинство школьных олимпиад по информатике поддерживают язык Python. C 2015 года в текстах задач ЕГЭ примеры приводятся также и на языке Python.

Практика показывает, что задания ЕГЭ по информатике, в которых требуется написать программу, существенно проще решать с использованием языка Python, чем классических языков Бейсик, Паскаль, C/C++.

В университетах разных стран Python постепенно вытесняет языки С и Java, которые долгое время ис­пользовались для обучения студен­тов программированию. В список университетов и колледжей, в кото­рых изучается Python, входят более 30 учебных заведений США, в том числе Массачусетсский технологи­ческий институт (MIT) — ведущий мировой центр инженерного образо­вания.

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

· Марк Лутц. Изучаем Python. 4-е издание – очень толстый и подробный учебник.

· Марк Саммерфилд. Программирование на Python 3 – менее толстый, не столь подробный учебник.

 

Где применяется Python

Язык программирования Python приобретает все большую популяр­ность. По данным одного из самых известных рейтингов ТЮВЕ, Python с 2008 года прочно удерживается в восьмерке наиболее популярных языков программирования.

Python — стабильный и достаточно распространенный язык программирования. Он используется в некоторых проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений, а также для написания скриптов. На Python реализовано некоторое количество проектов, также он активно используется для создания прототипов будущих программ.

Многие компании активно используют Python для написания своих продуктов или некоторых их частей. Среди крупнейших можно выделить:

  • Google
  • Яндекс
  • Mail.Ru
  • Apple( использует Python и Twisted для разработки сервера календарей iCal)
  • IBM
  • Европейская организация по ядерным исследова­ниям (CERN)
  • DreamWorks
  • Национальное управ­ление по воздухоплаванию и иссле­дованию космического пространства США (NASA)
  • Nokia

Кроме того, Python активно используется в различных проектах:

  • CherryPy — среда для разработки веб-приложений
  • Django — среда для разработки веб-приложений
  • Google App Engine — Google-хостинг
  • Matplotlib — визуализация научных данных в стиле MATLAB
  • BitTorrent — первый клиент-сервер для популярного протокола файлообменных сетей.
  • Dropbox — приложение для прозрачной синхронизации данных на множестве компьютеров.

Следующие проекты используют Python для написания скриптов:

  • Википедия использует Python для написания ботов
  • OpenOffice.org — набор офисных программ, альтернатива Microsoft Office
  • Vim — текстовый редактор
  • GIMP
  • Blender
  • Cinema 4D
  • Maya
  • Inkscape
  • Scribus

Python также активно используется разработчиками компьютерных игр (Eve Online, Civilization IV и др.)

Свободно распространяемые реа­лизации языка Python существуют для всех популярных операционных систем (Windows, Linux, Mac OS X, FreeBSD, Android, iOS и др.), что сразу снимает проблему лицензирования программного обеспечения.

 

Синтаксис, семантика и прагматика

Что значит "знать язык программирования"? А что означает знать русский язык? Это означает умение понимать речь и письменный текст на этом языке, видеть орфографические, грамматические, синтаксические и пунктуационные ошибки в тексте, а также излагать собственные мысли на этом языке.
С языками программирования немного проще — на них не разговаривают, а только пишут, причём правила языка строго формализованы. Однако излагать свои мысли приходится синтаксически безошибочно, так как "осознанием" текста будет заниматься бездушный компьютер, исполняющий ровно то, что написано.

Описание языка программирования состоит из задания синтаксиса и семантики.

Синтаксис — это самая простая часть описания алгоритмического языка. На уровне грамматики определяются корректные последовательности символов — лексемы. Если последовательность символов принадлежит языку, то она считается синтаксически правильной. Для программы это означает, что транслятор на ней не выдает ошибки. Но синтаксическая правильность не гарантирует даже осмысленности программы. Таким образом, синтаксис определяет лишь одну сторону языка.

Семантика — это соответствие между синтаксически правильными программами и действиями абстрактного исполнителя, то есть это смысл синтаксических конструкций.

Цель программиста — получить нужный ему эффект в результате исполнения программы на конкретном оборудовании. Но, составляя программу, он думает о программе как об абстрактной сущности и чаще всего совсем не хочет знать о регистрах, процессоре и других объектах конкретного оборудования. В соответствии с позицией программиста моделью вычислений языка программирования естественно считать то, какой абстрактный вычислитель задается описанием языка. Эта позиция подкрепляется также тем, что трансляция и исполнение может осуществляться на разных конкретных вычислителях. Следуя этой точке зрения, мы, говоря о модели программы, всегда имеем в виду ее образ в виде команд абстрактного, а не конкретного вычислителя.

Прагматика — задает конкретизацию абстрактного вычислителя для данной вычислительной системы. Часто стандарт языка программирования не полностью задаёт поведение исполнителя, оставляя некоторые вольности, которые производителями транслятора языка реализуются так или иначе.

Реализованный язык всегда является прагматическим компромиссом между абстрактной моделью вычислений и возможностями ее воплощения. Поэтому программисту для предсказуемого поведения программы бывает важно знать особенности данного конкретного компилятора, а также особенности архитектуры, для которых пишется программа.