Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal

Ответ
 
Опции темы
Старый 23.11.2008, 00:17   #1
DixaDel
AnyKey`щик
 
Аватар для DixaDel
 
Регистрация: 21.11.2008
Сообщений: 6
Написано одно полезное сообщение
Интерпретатор в телефоне

Привет, программеры! У меня тут зародилысь идейка - создать некое подобие какого-нить языка (ну конечно же это Паскакаль ) Главное то, чтобы он работал в телефоне. То есть берём свою любимую трубу, пишем прогу, а он(телефон) эту прогу интерпритирует(по-моему это правильное слово). Типа бейсика что-то сделать... Кто как на этот счёт думает?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
TahirBySky (28.03.2009)
Старый 23.11.2008, 01:49   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Интерпретатор в телефоне

Во-первых, нечто подобное уже есть, правда для сименсов + есть интерпретатор(правда, не совсем паскаль, написанный одним из местных кодеров) http://forum.boolean.name/showthread.php?t=7262 Во-вторых, интерпретатор - это тормоза, мороки много, а толку мало. В-третьих, как-то обломно текст программы на клавиатуре тела набирать.
(Offline)
 
Ответить с цитированием
Старый 23.11.2008, 02:03   #3
DixaDel
AnyKey`щик
 
Аватар для DixaDel
 
Регистрация: 21.11.2008
Сообщений: 6
Написано одно полезное сообщение
Ответ: Интерпретатор в телефоне

В этом - то всё и дело!!! Сделать не что-то подобное, а своё, родное Потом помнишь Delphi? так вот, там есть такая фишка - вводишь типизированную переменную(может даже имя объекта), жмёшь точку, вылазит окошко со свойствами этого объекта. Так вот, так же можно поступить и с зарезервированными словами. Ввёл первую букву, он тебе дал список зарезервированных слов на эту букву, дальше полистал, выбрал слово, нажал на OK и оно уже введено. Тут можно будет её дочиканить до того, что нужно будет вводить полностью только новые названия типов, переменных, констант и т.д. Как на это смотришь?
А вот насчёт тормозов интерпритатора - будем усовершенствовать так, пока не будет работать как на компе на эмуляторе.(по-моему так можно )
(Offline)
 
Ответить с цитированием
Старый 23.11.2008, 04:57   #4
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Интерпретатор в телефоне

там есть такая фишка - вводишь типизированную переменную(может даже имя объекта), жмёшь точку, вылазит окошко со свойствами этого объекта. Так вот, так же можно поступить и с зарезервированными словами. Ввёл первую букву, он тебе дал список зарезервированных слов на эту букву, дальше полистал, выбрал слово, нажал на OK и оно уже введено.
И как ты это будешь делать? Будешь ввод с клавиатуры в канвасе реализовывать? Верх извращенства...
(Offline)
 
Ответить с цитированием
Старый 23.11.2008, 08:11   #5
DixaDel
AnyKey`щик
 
Аватар для DixaDel
 
Регистрация: 21.11.2008
Сообщений: 6
Написано одно полезное сообщение
Смех Ответ: Интерпретатор в телефоне

Сообщение от Phantom_wc Посмотреть сообщение
И как ты это будешь делать? Будешь ввод с клавиатуры в канвасе реализовывать? Верх извращенства...
Помнится встретилась мне тут на форуме одна замечательная прога. Зовут её BrainFuck(Название архива BF(ссылку не укажу(непомню, где она))). Так вот, там была продемонстрированна реализация такого замечательного метода(альтернативный ввод - вроде бы её название(извиняюсь за неграмотность...)). Оттуда можно его вытянуть.


Кстати, посидел, подумал, а если представить, что программа будет занимать очень много текста, тогда выбор нужного компонента/переменной/объекта будет ну просто оччень большим...
(Offline)
 
Ответить с цитированием
Старый 23.11.2008, 13:53   #6
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Интерпретатор в телефоне

там была продемонстрированна реализация такого замечательного метода(альтернативный ввод - вроде бы её название(извиняюсь за неграмотность...)). Оттуда можно его вытянуть.
И распрощайся с Т9 + появятся тормоза на разных мобилах + раскладка клавиатуры на различных мобилах отличается.
(Offline)
 
Ответить с цитированием
Старый 28.03.2009, 17:30   #7
TahirBySky
AnyKey`щик
 
Регистрация: 15.03.2009
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Интерпретатор в телефоне

Сообщение от DixaDel Посмотреть сообщение
Привет, программеры! У меня тут зародилысь идейка - создать некое подобие какого-нить языка (ну конечно же это Паскакаль ) Главное то, чтобы он работал в телефоне. То есть берём свою любимую трубу, пишем прогу, а он(телефон) эту прогу интерпритирует(по-моему это правильное слово). Типа бейсика что-то сделать... Кто как на этот счёт думает?
как сделать пока не знаю но вещь полезная ведь можно программировать в в любом месте в любое время!!
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 17:35   #8
Slezka
AnyKey`щик
 
Регистрация: 04.03.2009
Сообщений: 4
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Интерпретатор в телефоне

А вы знаете про lm2j+jtome+perefekator=Java..
Еще есть для телефона, ява компилятор, могу ссылки дать
(Offline)
 
Ответить с цитированием
Старый 03.04.2009, 19:47   #9
KAK? TAK!
Нуждающийся
 
Регистрация: 07.03.2009
Сообщений: 98
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Интерпретатор в телефоне

ага
!!!!!!!!!скинь
(Offline)
 
Ответить с цитированием
Старый 26.04.2009, 14:37   #10
liery
AnyKey`щик
 
Регистрация: 09.01.2009
Сообщений: 8
Написано одно полезное сообщение
Ответ: Интерпретатор в телефоне

кто нибудь пробовал делать интерпретатор паскаля? я попробовал и вот что пока получилось
program pascal;
{-----------------------------------------------------------------}
var
tm:array[1..40] of string; // максимальное к-во пунктов
vars:array[1..40] of string; {имена переменных}
values:array[1..40] of string;{значения переменных, каждая переменная имеет свой ид номер в 2 массивах одинаков}
lines:integer;
vas:integer;
{---------------------------------------------------------------}
function getidforname(name:string):integer;
var ad:integer;
begin
for ad:=1 to 40 do
begin
if vars[ad] = name then getidforname:=ad break;
end;
end;
{-----------------------------------------------------------------}
function getnameforid(id:string):string;
var ads:integer;
begin
for ads:=1 to 40 do
begin
if vars[ads]=id then getnameforid:=vars[ads] break;
end;
end;
{---------------------------------------------------------------------}
procedure setvalue(variable,value:string);
var temp:integer;
begin
temp:=getidforname(variable);
values[temp]:=value;
end;
{---------------------------------------------------------------------}
procedure soob(t: string);{ вывод сообщения. также удобно искать ошибки}
var n,m,r,n1: integer;
begin
n:= getStringWidth(t);m:= getStringHeight(t);{ n - ширина m - высота строки текста }
setColor(145,135,255);fillrect((getWidth - n) / 2-5,(getHeight - m) / 2-5,n+10,m+10);{ очищаем прямоугольник под текст }
setColor(140,10,35); if n<=getWidth then drawText(t, (getWidth - n) / 2,(getHeight - m) / 2); { центруем и печатаем если целикомпомещается на экране }
else begin r:=n-getWidth; for n1:=0 to r do begin { вычисляем сколько пикселей не влезло }
setColor(145,135,255);fillrect((getWidth - n) / 2-3,(getHeight - m) / 2-3,n+6,m+6); { если не очистить просто смажется }
setColor(140,10,35);drawText(t,0-n1,(getHeight - m) / 2);repaint; delay(10);{ центруем и печатаем }
if n1=0 then delay(2000);end;end; { задержка что б прочесть начало строки }
repaint;delay(1000);setColor(145,135,255);fillrect ((getWidth - n) / 2-5,(getHeight - m) / 2-5,n+10,m+10);
end;
{----------------------------------------------------------------------------------------------}
procedure massivizstroki(stroka:string);{процедура создает массив из строки,писал ее не я,а 12121}
var
n:integer; // убрал лишние переменные
begin
lines:=1;// - будет количество получившихся строк
tm[1]:=''; // что бы с прошлого вызова ничего не осталось
for n:=1 to length(stroka) do begin //разбивка на пункты
if copy(stroka,n-1,n)=';' then begin lines:=lines+1;tm[lines]:='';n:=n+1; end;
if copy(stroka,n-1,n)<>' ' then tm[lines]:=tm[lines]+copy(stroka,n-1,n); // вырезаем пробелы каторые могут быть
// иначе могут быть неувязки при проверке ведь 'end'<>' end'
end;
end;{не хватало end;}

procedure vabr(strok:string);
var
i:integer; // убрал лишние переменные
begin
vas:=1;// - будет количество получившихся строк
vars[1]:=''; // что бы с прошлого вызова ничего не осталось
for i:=1 to length(strok) do begin //разбивка на пункты
if copy(strok,i-1,i)=',' then begin vas:=lines+1;vars[vas]:='';i:=i+1; end;
if copy(strok,i-1,i)<>' ' then vars[vas]:=vars[vas]+copy(strok,i-1,i); // вырезаем пробелы каторые могут быть
// иначе могут быть неувязки при проверке ведь 'end'<>' end'
end;
{---------------------Cоздание переменных-------------------------------------------}

end;
{-----------------------------------------------}
procedure write(what:string;del:integer);
begin
drawText(what, 0, 0);
repaint;
delay(del);
end;
{------------------------------------------------}
procedure main;
var h:integer;
hel,lel:string;
hellen:integer;
begin

for h:=1 to lines do
begin
hel:=tm[h];// soob(hel);
hellen:=Length(hel);
if copy(hel,0,5)='write' then begin lel:=copy(hel,7,hellen-2); write(lel,5000); end;
if copy(hel,0,2)='var' then begin lel:=copy(hel,4,hellen); vabr(lel); end;
end;
end;
{------------------------------------------------}
begin
massivizstroki('program beg;var a,b,c;begin;write("helloworld");end');
main;
end.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
PacMan (05.07.2009)
Старый 06.05.2009, 16:29   #11
Richik
Нуждающийся
 
Аватар для Richik
 
Регистрация: 02.05.2009
Сообщений: 68
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Интерпретатор в телефоне

Прикольно).., этому коду нужно подключить кучу библиотек, сделать возможность сохранение и загрузку pac-файлов с фс телефона, написать интерфейс и ваять )
(Offline)
 
Ответить с цитированием
Старый 05.08.2009, 20:08   #12
Трава
Нуждающийся
 
Аватар для Трава
 
Регистрация: 30.07.2009
Сообщений: 61
Написано одно полезное сообщение
Ответ: Интерпретатор в телефоне

Ну... Не знаю, я делал на VB интерпретаторы и виртуальные машины. У меня даж есть небольшая статейка по их созданию... Принцип один и тот же... Надо заюзать несколько функций - Copy(), Length, ну и главное функцию своего мозга Выложу небольшой пример, который обрабатывает одну команду. Можно будет наращивать с использованием if далее по аналогии. Думаю, тут ламеров конкретных нет, так что писать буду без комментов (не люблю я их писать почему-то).

program Interpreter;
var cmd : string;
var index : integer;
var button : command;
begin
ShowForm;
index := FormAddTextField('Команда:', '', 999, TF_ANY);
button := CreateCommand('Старт', CM_SCREEN, 1);
addCommand(button);
repeat
delay(100)
until GetClickedCommand = button;
cmd := FormGetText(index);
ClearForm;
If Copy(cmd, 0, 6) = 'print ' then
begin
index := FormAddString(Copy(cmd, 6, Length(cmd)));
delay(10000);
Halt;
end;
end.

Собс-но вот и сам пример. Всё вроде просто. Проверяем отрывок переменной cmd с 0 по 6-той символ и если он равен "print " тада выводим текст на экран. Тоже самое в бэйсике (не в тему, но покажу для сравнения).

Sub Main()
Dim command As String
command = InputBox("Команда:")
If Mid(command, 1, 6) = "print " Then
MsgBox Mid(command, 7, Len(command))
Else
MsgBox "Ошибка"
End If
End Sub

Mid() - эт Copy(), а Len() - эт Length(). В общем тоже самое тока на другом языке
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка jar программ на телефоне artemff Прочие вопросы 2 10.01.2010 14:28
Компилятор в телефоне!!! DIMMON4IK JAVA Micro Edition 1 10.12.2009 20:50
Интерпретатор (среда программирования в телефоне). abcdef Проекты на MidletPascal 4 31.03.2009 13:27
Brainfuck интерпретатор (помогите с меню) sorok5ok Проекты на MidletPascal 13 09.12.2007 20:34
Интерпретатор Brainf**k alcoSHoLiK Проекты C++ 3 14.09.2006 22:38


Часовой пояс GMT +4, время: 18:37.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com