Сага о найденных мегагерцах
 
24.06.2003
Илья Щуров Voyager


 
<< стр. 1
стр. 2

Для Палма я нашел программный калькулятор, который вызывает у меня то же ощущение изящества, что и его прототипы. EasyCalc — калькулятор довольно строгий по дизайну (никаких украшений, все функционально, но удобно) и совершенно фантастический по возможностям (рис. 2). Комплексные числа и операции над матрицами, вплоть до решения систем линейных уравнений произвольного порядка, разноцветные графики в любых координатах (декартовых, полярных, параметрическое задание), множество специальных функций, численные методы (интегрирование, дифференцирование, нахождение корня и т. д.), работа в разных системах исчисления, возможность создания своих переменных и функций, история расчетов… Есть все, чего только неравнодушная к математике душа может пожелать. И даже больше: программа бесплатная и распространяется с открытыми исходниками, так что в комплект, помимо документации, входит средство против похудения кошелька (или, в нашем случае, поддержания совести в кристально чистом состоянии), а также возможность добавить какую-нибудь специфическую нереализованную функцию.

Программируем

3Большие программы для Палма обычно пишутся и компилируются на ПК, однако существует целый класс инструментов для так называемой onboard-разработки. Это редакторы, компиляторы и интерпретаторы, позволяющие программировать на Палме без всяких дополнительных компьютеров. Вот она — реальная мобильность!

Инструменты бывают разными. Любителям языка Си (к коим я себя отношу), а также всем Истинным Программистам (которым я не являюсь) должен понравится OnBoardC (рис. 3). Это самый настоящий Си-компилятор, создающий программы маленькие и быстрые, а главное, не зависящие от каких-либо runtime-библиотек, то есть полноценные и самостоятельные (то, что называется standalone). К нему также прилагается SrcEdit — довольно удобный, хотя и не совсем безглючный программерский редактор. Еще можно скачать RsrcEdit — редактор ресурсов, позволяющий создавать и менять интерфейс приложений: работать с формами, всевозможными кнопочками и менюшками в почти визуальном режиме (рис. 4).

С одной стороны, процесс разработки привычен, а с другой — имеет свои нюансы. Стандарт ANSI C, хоть и поддерживается, но не до конца. В частности, неполно реализована работа с плавающей точкой, иногда приходится отлавливать ошибки в совершенно неожиданных местах, что не очень приятно при написании именно математических программ. Впрочем, к этому можно приспособиться. К PalmAPI тоже надо привыкать, а лучше — почитать документацию (www.palmos.com/dev/support/docs). В общем и целом необходимость реализовывать многое «руками» и внимательно следить за тем, что делает программа (в случае возникновения каких-то проблем легко получить сообщение «Segmentation fault» с недвусмысленным предложением перезагрузиться), компенсируется свободой, широкими возможностями и эффективностью.

4При работе с OnBoardC одиночество вам не грозит. Группа пользователей-разработчиков организовала сайт groups.yahoo.com/group/onboardc, на котором можно найти англоязычную конференцию, множество файлов с примерами программ, документацию по PalmOS-программированию и вообще много полезных вещей. Например, там я обнаружил файл highdensity.h, который позволяет писать программы, работающие в режиме высокого разрешения3. Да и просто пообщаться с единомышленниками бывает приятно. К тому же и сам проект OnBoardC развивается на принципах OpenSource. Так что плюсов гораздо больше, чем минусов.

Но если все-таки мысль о написании программ на Си вселяет в вас ужас, а скорость, переносимость и компактность программ не принципиальны, советую обратить внимание на Plua (рис. 5). Сия разработка является Палмовой версией интерпретатора языка Lua (www.lua.org), который на первый взгляд представляет собой гремучую смесь Бейсика, Паскаля, Перла и, возможно, чего-то еще. На самом деле, у Lua есть своя философия, но мы в нее углубляться не будем. Программировать на нем довольно просто, по сравнению с Си — даже очень просто. Создание интерфейса не выглядит подвигом, достойным упоминания в древнегреческих мифах; числовые переменные автоматически конвертируются в строковые и обратно; о том, что какая-нибудь ячейка памяти будет ошибочно освобождена в самый неподходящий момент, думать не приходится. Плюс ко всему — поддерживается объектно-ориентированное программирование, есть такая удобная структура, как ассоциативный массив, а также много других вкусностей и полезностей.

5Увы, за все приходится платить. Как обычно и бывает в программировании, за удобство приходится платить скоростью работы кода, а здесь — еще и необходимостью таскать вместе со своей программой runtime-библиотеку, фактически выполняющую функцию интерпретатора4. Так что публично распространять собственные произведения получится вряд ли, а вот сделать что-нибудь для себя — вполне реально.

Теперь вы знаете, что где бы вы ни были — в отпуске на берегу моря или в полярной экспедиции, в пещере или на вершине Эвереста, — если вам вдруг понадобится вспомнить доказательство Великой теоремы Ферма, нарисовать пятимерный куб или исследовать поведение системы дифференциальных уравнений, вы сможете это сделать без особых проблем. Был бы Палм под рукой — а остальное приложится.

Переводим

Русский язык, к сожалению, не является международным, так что многие сведения доступны исключительно на английском — особенно это касается научных статей вообще и математических в частности. Здесь не помешает хороший словарь. Признаться, хороших математических словарей я в цифровом виде не встречал. Похоже, их в природе (или, по крайней мере, в Сети) не бывает. Но есть, например, небольшой English-Russian Mathematic dictionary для системы SlovoEd, который можно взять по адресу www. penreader.com/PalmOS/SlovoEd/SlovoEd_Russian-English_Download_area_for_SlovoEd.html. В нем около шести тысяч терминов — не так чтобы много, но все-таки лучше, чем ничего. На той же странице есть и другие научно-технические словари, которые могут оказаться полезными.


3 (назад) Правда, для его включения пришлось немножко почитать документацию по пятой PalmOS.
4 (назад) Платить деньгами никто не просит: Plua, находясь на стадии бета-тестировании, пока бесплатна.



 
<< стр. 1
стр. 2

<<Чужое мнение
Все материалы номера
Над принтером Hewlett-Packard LaserJet 2500L >>