import StringIO, token, tokenize 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

import StringIO, token, tokenize

Поиск

67, 71, 73, 79, 83, 89, 97]

 

Разумеется,вPyrexможно использоватьC-библиотеки,именно поэтому он,как иSWIG,может служить для построения обертокC-библиотек дляPython.

 

Следует отметить,что для простых операцийPyrexприменяетC,а для обращения к объектамPython -вызовыPython/C API.Таким образом,объединяется выразительностьPython и эффективность C. Конечно, некоторые вещи в Pyrex не доступны, например, генераторы,списковые включения иUnicode,однако,цельPyrex -создание быстродействующих модулей расширения,и для этого он превосходно подходит.Ознакомится сPyrexможно по документации(которая,к сожалению,есть пока только на английском языке).

 

Заключение

 

В этой лекции кратко рассматривались основные возможности интеграции интерпретатораPython и других систем программирования. Базовая реализация языка Python написана на C, поэтому Python имеет программный интерфейс Python/C API, который позволяет программам наC/C++обращаться к интерпретаторуPython,отдельным объектам,модулям и типам данных.СоставPython/C APIдостаточно обширен,поэтому речь шла лишь о некоторых основных его элементах.

 

Был рассмотрен процесс написания модуля расширения наCкак напрямую,так и с использованием генератора интерфейсовSWIG.Также кратко говорилось о возможности встраивания интерпретатораPythonв программу на С илиOCaml.

 

ЯзыкPython (с помощью специальной его реализации- Jython)прозрачно интегрируется с языкомJava:вPython-программе,выполняемой подJythonвJava-апплете илиJava-приложении,можно использовать практически любыеJava-классы.

 

На примере языкаPrologбыли показаны различные подходы к добавлению возможностей логического вывода вPython-программы:независимая реализацияProlog-машины,связь сProlog-интерпретатором через конвейер, связь через Python/C API.


 


Интересный гибридCиPythonпредставляет из себя языкPyrex.Этот язык создан с целью упростить написание модулей расширения дляPythonнаC,и использует структуры данныхC и подобный Python синтаксис. Несмотря на некоторые смысловые и синтаксические отличия как отC,так и отPython,языкPyrexпомогает существенно сократить время разработки модулей расширения,сохранив эффективность компилятораCи знакомый синтаксисPython.

 

В данной лекции не были представлены другие возможности интеграции,например библиотека шаблоновC++ Boost Python,которая позволяет интегрироватьPythonиC++.Кроме того,изPythonможно использовать библиотеки,написанные на Фортране(проект

F2PY).

 

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

 

Ссылки

 

БиблиотекаBoost PythonдляC++http://www.boost.org


 

 


Лекция#14:Устройство интерпретатора языкаPython

 

Лексический анализ

 

Лексический анализатор языка программирования разбивает исходный текст программы(состоящий из одиночных символов) на лексемы - неделимые "слова" языка.

 

Основные категории лексемPython:идентификаторы и ключевые слова(NAME),литералы(STRING, NUMBER и т.п.), операции (OP), разделители, специальные лексемы для обозначения(изменения)отступов(INDENT, DEDENT)и концов строк(NEWLINE),а также комментарии(COMMENT).Лексический анализатор доступен через модуль tokenize,а определения кодов лексем содержатся в модуле token стандартной библиотекиPython.Следующий пример показывает лексический анализатор в действии:

 

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)