Чтение онлайн

на главную - закладки

Жанры

Программирование для карманных компьютеров

Волков Владимир

Шрифт:

Можно набрать в строке приглашения 2+3, а затем нажать клавишу Enter. На экран будет выведен результат. Убедившись, что обещанная мощная математика на месте, можно отправиться на сайт www.python.ru и загрузить книгу «Язык программирования Python», Г. Россум, Ф. Л. Дж. Дрейк, Д. С. Откидач и др.

Scheme

А это совсем другой язык и совсем другое программирование. В отличие от большинства привычных алгоритмических языков программирования, scheme (урезанный диалект языка Lisp) относится к языкам функционального программирования. Pocket Sheme, так же как и Pocket Python, вряд ли найдет применение непосредственно на Pocket PC, но идеален, как учебное пособие для желающих изучить этот язык.

Сайт разработчика располагается по адресу www.mazama.net/scheme/pscheme.htm.

Со страницы Download нужно загрузить соответствующий cab-файл, скопировать его на Pocket PC и установить.

После установки в каталоге \Program Files\Pocket Scheme будут размещены файлы pscheme.exe и pscmedit.exe. Файл pscheme.exe запускает интерпретатор sсheme в интерактивном режиме (рис. 7.14).

Рис. 7.14. Интерпретатор sсheme в интерактивном режиме.

Файл pscmedit.exe запускает простой редактор текстов scheme-программ с элементарной поддержкой некоторых особенностей синтаксиса этого языка.

Запустив scheme, и, возможно, выполнив пару-другую функций, подсмотренных на рисунке, вы захотите разработать более содержательную программу. В рунете крайне мало информации о sсheme, но начальное представление можно получить, прочитав перевод руководства по адресу www.shounen.ru/docs/guile-ref. А если

перевод и программирование на этом языке вас увлекут, то окончательно втянуться в процесс вам поможет сайт www.schemers.org.

DSForth

Форт – еще один «странный» язык. Если вам очень нравится программировать на очень низком уровне, если вы до судорог в пальцах хотите научиться создавать программы, при взгляде на которые программистов на других языках будет пробивать холодный пот, – Форт как раз для вас. В Форте почти все делается при помощи стека. Все введенные числа попадают в стек, чтобы сложить два числа их надо поместить в стек, результат операции тоже помещается в стек. Форт похож на очень сложный макроассемблер, а синтаксис его больше, чем у какого-либо еще языка схож с логикой организации машинных кодов.

Найти Форт для Pocket PC можно на сайте разработчика www.delosoft.com. Нужно загрузить файл ds2.ARM.CAB, скопировать его на устройство и запустить. После этого Форт будет установлен.

Запускать Форт придется в два этапа.

1. Сначала в каталоге \Program Files\Dsforth нужно запустить файл dsforth2.exe. Он выдаст одно сообщение (щелкните на кнопке OK), а затем через некоторое время он выдаст сообщение о том, что все сохранено успешно. Второе сообщение можно ждать долго. Если оно не появится примерно через минуту, нужно активировать список настроек, запустить инструмент управления распределением памяти, в списке запущенных программ найти сообщение от Forth и активизировать его.

2. После того как dsforth2.exe отработает, в папке Dsforth появится файл ds2c.exe. Это, собственно, и есть сам Forth. После запуска этого файла на экран будет выведен Forth в интерактивном режиме (рис. 7.15).

Рис. 7.15. Forth в интерактивном режиме.

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

Нужно зайти на сайт www.forth.org.ru, открыть раздел Литература и скачать все учебники. После этого нужно скопировать с Pocket PC на настольный компьютер файл ds2c.str. Это словарь. Читайте книги, сравнивайте те команды, которые находите в книгах со словами в словаре, и таким образом осваивайте этот странный, но увлекательный язык. Если вас не затрудняет чтение на английском, то стоит обратить внимание на страницу www.forth.org/tutorials.html.

К сожалению, встроенной справки для этого языка не существует. Разработчики отправляют программистов читать стандарт на английском языке, но на сайте www.forth.org.ru этот же стандарт есть на русском языке.

Утилиты с сайта www.rainer-keuchel.de

На этом сайте расположено множество утилит и языков программирования, портированных в Pocket PC из соответствующих программ GNU (свободного программного обеспечения). Соответственно, они бесплатны (это плюс) и обновляются тогда, когда у автора до них доходят руки (это минус).

Все программы, которые будут рассмотрены в этом разделе, загружаются либо из списка, расположенного на странице www.rainer-keuchel.de/wince/dirlist.html, либо из списка www.wince-devel.org/wince/dirlist.html.

Работа всех программ основана на библиотеках celib и cedialogs. Кроме этого, большинство программ требует некоторой конфигурации и записи ключей в реестр. По этой причине мы начнем знакомство с программами сайта с установки данных библиотек и описания некоторых утилит, используемых на рабочей станции для отладки и конфигурации Pocket PC.

celib и cedialogs

Необходимо загрузить файлы cedialogs-1.05-all-platforms.tar.gz, celib-3.13-dll-bin-all-platforms.tar.gz и распаковать их. С этой задачей прекрасно справляется WinZip. В каталог \Windows на устройстве Pocket PC нужно скопировать файл celib.dll из каталога wince-arm-pocket-wce300-release и файлы cedialogs.dll и cedialogsx.dll из каталога wince-arm-pocket-wce300.

Desktop tools

Теперь нужно загрузить и распаковать файл wince-desktop-tools.tar.gz. Поскольку эти утилиты будут использоваться на настольном компьютере, их надо скопировать в каталог, который будет доступен из интерпретатора команд Windows. Затем нужно запустить интерпретатор команд Windows. Для этого следут выполнить команду Пуск ? Выполнить, затем набрать cmd и нажать клавишу Enter.

Назначение и использование утилит расшифровывается в следующем списке.

? Файл cecopy.exe копирует файлы между Pocket PC и рабочей станцией. Формат команды достаточно прост: cecopy.exe <источник> <приемник>. Команда cecopy.exe се: \Windows\Alarml.wavрс: с: \ копирует файл Alarml.wav из каталога Windows на Pocket PC в корневой каталог на диске C: рабочей станции.

? Файл cedel.exe удаляет указанный файл на Pocket PC. Формат команды достаточно прост: cedel.exe <имя_файла>. Команда cedel.exe l.txt удалит файл l.txt в корневом каталоге Pocket PC.

? Файл cedir выводит в окно командного интерпретатора на рабочей станции содержимое указанного каталога на Pocket PC. Формат команды достаточно прост: cedir [-1] <имя_каталога>. Ключ -1 включает детализированный вывод. Команда cedir -1 \Temp\ выводит подробный список файлов в каталоге Temp. Корневой каталог нужно обозначать символом \.

? Файл ceexec.exe позволяет удаленно запускать указанную программу. Формат команды: ceexec.exe <имя_программы> <ключи_командной_строки>]. Команда ceexec.exe \Windows\calc.exe запускает калькулятор на Pocket PC.

? Файл cegetinfo.exe выводит на рабочей станции информацию о занятой памяти на рабочей станции.

? Файл cemkdir.exe создает каталог на Pocket PC. Формат команды: cemkdir.exe <имя_каталога>. Команда cemkdir.exe \MyTmp создает папку MyTmp в корневом каталоге Pocket PC.

? Файл cereg.exe вносит одну строку в реестр Pocket PC. Формат команды не так уж и сложен: cereg – к <ключ_реестра> – п <имя> – v <значение>. Команда cereg – k HKLMXEnvironment – n PATH – v \MyProg\bin добавляет в раздел реестра HKLM\ Environment ключ PATH со значением \MyProg\bin.

Утилита cereg.exe понадобится прямо сейчас. Для правильной работы библиотеки celib.dll в реестр необходимо добавить несколько значений. Поскольку cereg.exe добавляет только одну строку, проще всего будет создать выполняемый файл, который будет содержать вызовы cereg.exe для каждой строки. Код соответствующего командного файла приведен в листинге 7.1.

Листинг 7.1

@echo off

cereg – k HKLM\Environment – n COMPUTERNAME – v Pocket

cereg – k HKLM\Environment – n EMACSDATA – v «\Storage Card\emacs\etc»

cereg – k HKLM\Environment – n EMACSDIR – v «\Storage Card\emacs»

cereg – k HKLM\Environment – n EMACSDOC – v «\Storage Card\emacs\etc»

cereg – k HKLM\Environment – n EMACSLOADPATH – v «\Storage Card\emacs\lisp»

cereg – k HKLM\Environment – n EMACSPATH – v «\Storage Card\emacs\bin»

cereg – k HKLM\Environment – n HOME – v «\Storage Card\Volkov»

cereg – k HKLM\Environment – n PATH – v «\Storage Card\bin»

cereg – k HKLM\Environment – n SHELL – v cmd

cereg – k HKLM\Environment – n TEMP – v \Temp

cereg – k HKLM\Environment – n TMP – v \Temp

cereg – k HKLM\Environment – n TMPDIR – v \Temp

cereg – k HKLM\Environment – n USERNAME – v Volkov

cereg – k HKLM\Environment – n UNIXROOTDIR – v «\Storage Card»

Этот файл нужно сохранить с именем myreg.bat в том же каталоге, в котором находится файл cereg.exe. Теперь нужно запустить этот файл из окна командного интерпретатора. После некоторой паузы в окно вернется приглашение командной строки. Записи внесены в реестр.

ПРИМЕЧАНИЕ.

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

Редактор ED

Загрузить файл editor-wince-arm-pocket-wce300.tar.gz, распаковать его, и файл editor.exe скопировать в каталог \Storage Card\bin на Pocket PC. Теперь можно его запускать. В вашем распоряжении появился простой и легкий редактор для редактирования текстов программ на разных языках (рис. 7.16).

Рис. 7.16.

Редактор ED.

Редактор EMACS и язык LISP

Загрузить и распаковать файлы emacs-wince-all-platforms.tar.gz и emacs-wince-arm-xbuild-2.03.tar.gz. Затем нужно скопировать папки emacs, etc, home из emacs-wince-all-platforms в каталог \Storage Card на устройстве. Файл emacs.exe из emacs-wince-arm-xbuild-2.03 нужно скопировать в папку \Storage Card\emacs\bin на устройстве. Поскольку все необходимые данные в реестр уже внесены, то программу можно сразу запускать (рис. 7.17).

Рис. 7.17. Редактор Emacs.

Внешний вид редактора тоже непривычен программисту, привыкшему к работе в Windows. Этот редактор тоже пришел на Pocket PC из Unix-систем. Стоит обратиться к документации, расположенной на странице, находящейся по адресу

Кроме этого, Emacs позволяет практически беспредельно расширять свою функциональность, но для этого надо изучить еще один язык программирования Emacs LISP. Он описан на странице http://www.gnu.org/software/emacs/emacs-lisp-intro/htmlmono/emacs-lisp-intro.html.

Perl

Perl – один из самых мощных языков обработки информации и программирования для интернет-серверов и информационных систем. Его популярность обусловлена еще и тем, что для Perl существует огромное количество готовых наработок, модулей, скриптов практически на все случаи жизни.

Нужно загрузить файл perl-wince-arm-pocket-wce300.tar.gz, распаковать его и выполнить простую последовательность действий.

? Файл perl.exe нужно скопировать в папку \Storage Card\bin<$]interface> на устройстве.

? Файл perl56.dll нужно скопировать в папку \Windows на устройстве.

? Папку lib нужно скопировать в папку \Storage Card\usr на устройстве.

Теперь нужно открыть блокнот и набрать текст, приведенный в листинге 7.2.

Листинг 7.2

@echo off

set perlexe="\Storage Card\bin\perl.exe"

set perllib="\Storage Card\usr\lib\perl5"

cereg – k «HKLM\Environment» – n «PERL5LIB» – v «%perllib%»

cereg – k «HKCR\.pl» – n "" – v «perlfile»

cereg – k «HKCR\perlfile» – n "" – v «Perl Script»

cereg – k «HKCR\perlfile\DefaultIcon» – n "" – v «%perlexe%,-1»

cereg – k «HKCR\perlfile\Shell\open\command» – n "" – v «%perlexe% %%1»

Этот файл нужно сохранить с именем perlreg.bat в тот же каталог, где находится файл cereg.exe, после чего его нужно будет запустить.

На Pocket PC следует запустить редактор ED. Нужно создать файл me.pl, код которого приведен в листинге 7.3.

Листинг 7.3

#! \bin\perl

$me = 5;

print $me;

Этот файл нужно сохранить и скопировать его в корневой каталог устройства. Потом следует запустить командный процессор (cmd.exe в каталоге Windows), набрать в строке приглашения команду cd \Storage Card\bin, а потом команду perl me.pl.

Если перейти в корневой каталог Pocket PC, то можно найти там файл perl-stdout.txt. Если в нем написано число 5, то все установлено правильно и работает. После этого стоит посетить страницу www.perl.org.ru/documentation и прочитать все рекомендации по использованию языка Perl.

Kaffe

Эта программа представляет больше учебный и исследовательский, нежели практический интерес. Возможно, именно вы сделаете из нее полноценное приложение. Kaffe это Java-система, предназначенная для запуска и компиляции Java-программ.

Нужно загрузить файлы kaffe-common.tar.gz и kaffe-wince-arm-hpc-wce300.tar.gz, распаковать их и скопировать содержимое папок \kaffe-common\kaffe и \kaffe-wince-arm-hpc-wce300\kaffe в папку kaffe, созданную в корневом каталоге устройства.

Теперь нужно открыть блокнот и набрать в нем код, приведенный в листинге 7.4.

Листинг 7.4

@echo off

set kaffedir_f=\kaffe

set kaffedir_b=\kaffe

set kaffexe=\kaffe\kaff.exe

cereg – k «HKLM\Environment» – n «KAFFEHOME» – v «%kaffedir_f%»

cereg – k «HKLM\Environment» – n «KAFFELIBRARYPATH» – v «%kaffedir_f%»

cereg – k « HKLM\Environment» – n «KAFFECLASSPATH» – v".; %kaffedir_f%\Klasses.jar"

cereg – k «HKCR\.class» – n "" – v «javaclass»

cereg – k «HKCR\javaclass» – n "" – v «Java Class»

Нужно сохранить это файл с именем kaffereg.bat в тот же каталог, где находится файл cereg.exe, после чего можно запустить его.

Теперь о грустном. Сколько я ни пытался запустить хотя бы один jar-файл, это сделать мне не удалось. По этой причине не заработал у меня и OnBoard-компилятор kjc.jar. Тем не менее, java-программы можно запускать в этой среде. Для этого они должны быть скомпилированны с совместимостью java 1.2 и не содержать в себе классов JFC\SWING.

Можно привести соответствующий пример. Для его выполнения на рабочей станции должен быть установлен JDK с версией не меньше 1.2. В Блокноте нужно набрать код, приведенный в листинге 7.5.

Листинг 7.5

import java.awt.*;

class Main extends Frame {

Main {

super("Draw Example ");

setBackground(Color.black);

setBounds(20,80,200,200);

show;

}

public void paint(Graphics g) {

Insets insets = this.getInsets;

int x = insets.left, y = insets.top;

int w = getSize. width-insets.left-insets.right;

int h = getSize. height-insets.top-insets.bottom;

g.setColor(Color.red);

while (w > 0 && h > 0) {

g.clearRect(x++, y++, w, h);

g.fillRect(x++, y++, w-2, h-2);

w – = 4;

h – = 4;

}

}

static public void main(String[] args) {

new Main;

}

}

Нужно сохранить этот код в файле с именем Main.java в корневом каталоге диска C:. Теперь его нужно скомпилировать. Для этого следует открыть интерпретатор команд, перейти в корневой каталог диска C: и выполнить следующую команду:

javac main.java

Чтобы команда была выполнена, ваш компьютер должен знать путь к файлу javac.exe. Если в переменной PATH этого пути нет, то его надо набрать полностью. При успехе выполнение команды завершится без сообщений, а в корневом каталоге диска C: вы найдете файл Main.class. Это и есть java-программа. Теперь нужно скопировать файл Main.class в каталог kaffe на Pocket PC, запустить cmd.exe и перейти в корневой каталог устройства. Затем нужно выполнить команду:

kaff \kaffe\Main

Эта команда загрузит файл Main.class на выполнение. Результат работы программы показан на рис. 7.18.

Рис. 7.18. Выполнение Java-программы на Pocket PC.

Все остальное – в ваших руках. Вы можете писать программы на Java и выполнять их на Pocket PC. Также вы можете взять с сайта www.rainer-keuchel.de код kaffe и усовершенствовать его, добавив в него поддержку всех основных классов Java 2.

PGCC

Это полноценный On-Board С\С++ компилятор для Pocket PC. Как говорили древние римляне – «ничего, кроме хорошего». На самом деле это отлично сделанная российским программистом система. Загрузить сам компилятор можно с одного из указанных в начале главы сайтов.

После загрузки архива и его распаковки вы обнаружите в архиве три файла:

? pgcc.ARM.CAB – сама программа.

? cmd.arm.cab – интерпретатор командной строки от Microsoft.

? pocketconsole.arm.cab – интерпретатор командной строки от SymbolicTools.

Нужно скопировать их на Pocket PC и установить.

В корневом каталоге будет создана папка рдсс, содержащая в себе компилятор, необходимые библиотеки и пример их использования. Пример взят из Pocket PC SDK и практически без изменений компилируется под PGCC. Для того чтобы откомпилировать и запустить пример, надо войти в папку \pgcc\samp, и запустить файл menu.bat. Некоторое время программа будет компилироваться, и в каталоге \pgcc\samp\menu после компиляции можно найти файл menu.exe. После его запуска станет видно, как можно создавать сложное основное меню и разные виды контекстных меню.

Проанализировав файл menu.bat, вы поймете, в какой последовательности компилируется и собирается любой проект. Для дальнейшей работы нужно читать книги по C++ и страничку www.opennet.ru/docs/RUS/gcc. Кроме того, не забудьте оформить членство в группеСделав это, вы получите доступ к большому количеству разных примеров использования рдсс, утилит, а также сможете задать вопросы самому Виталию Пронькину, который и разработал эту среду.

Языки и среды работы с Java

Начнем мы с обзора существующих виртуальных Java-машин, позволяющих запускать Java-приложения на Pocket PC.

Mysaifu JVM

Программа бесплатная, и потому недоделанная. Страница этой программы располагается по адресу www2s.biglobe.ne.jp/~dat/java/project/jvm/indexen.html.

Нужно загрузить файл jvm.ARM.CAB и установить его на Pocket PC. В каталоге \Program Files\Mysaifu JVM\jre\bin нужно найти файл jvm.exe и запустить его. На экран будет выведено окно (рис. 7.19).

Поделиться:
Популярные книги

Печать Пожирателя

Соломенный Илья
1. Пожиратель
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит