Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2009, 17:56   #71
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
В принципе проблема решаема. Написать транслятор
Ага, и получим "бейсик, переведённый промтом". Если и делать русский ЯП - то с "нормальной" русской семантикой, чтоб оно хоть читалось нормально:

Код:
a := b div 2 
a = б:2

a := b mod 2
a = остаток от б:2

c: char
c: символ

c: array[0..127] of char
с: массив размером 127 символов

c: array[0..127;0..127] of char
с: массив символов размером 127x127
(nonzero-based массивы сразу фтопку :)

Код:

Обьявления:

Класс Фигура
  Приватные
          //поля начинаются с "-"
          //методы просто так
          //вместо * при вызове будет указан экземпляр класса
          //вместо ? - поле записи
         -   Название типа: строка
         -   Площадь: с точкой
         -   Координата: XY 
         Площадь: с точкой
  Публичные методы
         Конструктор Создать экземпляр класса *
         Площадь: с точкой
         Переместить * в (x, y: целое)
  Публичные свойства
         Площадь *: с точкой, читает метод Площадь
         Координаты ? *: XY, читает поле "Координата", пишет в метод "Переместить * в"
Конец

.....................

Реализация:

Конструктор Создать экземпляр класса *
Начало
   Создать Базовый класс //типа inherited :)
Конец

Переместить * в (x, y: целое)
Начало
   Если х не в диапазоне 0..640 или y не в диапазоне 0..480
   то прервать 
   иначе Координата Х * = х и Координата Y * = y   
Конец

Площадь *: с точкой
Начало
//посчитать... )
   вернуть ...
Конец

................

   Треугольник: фигура

   Создать экземпляр класса треугольник
   Переместить треугольник в (10, 20)
   Вывести название типа треугольника
   Вывести координаты Х, Y треугольника как строку
   Координата Х треугольника = 20
   Вывести площадь треугольника как строку

//эээ, да, тут куча ляпов, но как концепт пойдёт :)
Типа такого мега-навороченного парсера, который понимает склонения и определения собственного синтаксиса "на ходу", блин, лиспом попахивает
пыщь

Последний раз редактировалось JTG; 18.08.2009 в 18:32.
JTG вне форума Ответить с цитированием
Старый 18.08.2009, 18:01   #72
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
с: массив размером 127 символов
а почему не
массив [0 .. 127] из символов ( из байт; из целых ) ?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 18.08.2009, 18:05   #73
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

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

Цитата:
а почему не
массив [0 .. 127] из символов ( из байт; из целых ) ?
Потому что это Паскаль переведенный, а то оригинальный свой язык =) (nonzero-based массивы сразу фтопку (С)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 18.08.2009 в 18:12.
mutabor вне форума Ответить с цитированием
Старый 18.08.2009, 18:57   #74
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Таки собрать язык типа лиспа или пролога. Там и переводить немного и со склонениями проблем меньше
pu4koff вне форума Ответить с цитированием
Старый 18.08.2009, 20:52   #75
Paladast
Пользователь
 
Аватар для Paladast
 
Регистрация: 09.08.2009
Сообщений: 66
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Потом можно вообще в стихах программы писать
Было бы любопытно А.С.Пушкина откомпилировать
Со мной бог и два пулемёта
Paladast вне форума Ответить с цитированием
Старый 19.08.2009, 08:00   #76
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Да ну мне и на Английском нравится?
VintProg вне форума Ответить с цитированием
Старый 19.08.2009, 08:14   #77
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
nonzero-based массивы сразу фтопку
Это еще почему? Протестую!
Цитата:
А.С.Пушкина откомпилировать
Хы. помню читал Пушкина на фене. Вот жежь... чего только на бедного Сергеевича не нацепляют.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2009, 19:59   #78
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Типа такого мега-навороченного парсера, который понимает склонения и определения собственного синтаксиса "на ходу", блин, лиспом попахивает
Я почти такой и собрал . Из своего скромного опыта могу сказать, что парсер не мега-наворченный, склонения можно обойти некоторым образом, а человечность можно ввести искусственно. Я делал это введением слов-паразитов - Сначала, затем, далее. Эти слова допускалось использовать в начале любой строки, они автоматически отбрасывались парсером:
Код:
Сначала, Х=100
 Затем введем у
 х=х+у
То есть эти слова можно было использовать и с запятой и без (я с русским на Вы , не знаю как правильней)

Ну есть еще пару приемов очеловечивания языка.
Например, использование специальной служебной переменной (кажись в пхп такой же трюк есть) для вопросов.
Код:
Переменная х существует?
помещает 'да' в специальную переменную КОНТЕКСТ, в общем любой вопрос это функция, результат которой передается в определенное место.
Затем в условиях имеется следующая примочка - если перед нами нет логического выражения (а просто выражение), то его нужно сравнивать со служебной переменой.
Код:
Переменная х существует?
Если да то х=1000 иначе создадим переменную х
Так что очеловечивание на самом деле не очень сложный процесс, просто над ним нужно поразмышлять.


Но я сразу писал смесь Лиспа и Паскаля - язык по задумке должен был быть командного типа с функциональными примочками .

Насчет массивов - дались Вам эти размеры? Да здравствуют динамические.

Код:
Класс Фигура
  Приватные
          //поля начинаются с "-"
          //методы просто так
          //вместо * при вызове будет указан экземпляр класса
          //вместо ? - поле записи
         -   Название типа: строка
         -   Площадь: с точкой
         -   Координата: XY 
         Площадь: с точкой
  Публичные методы
         Конструктор Создать экземпляр класса *
         Площадь: с точкой
         Переместить * в (x, y: целое)
  Публичные свойства
         Площадь *: с точкой, читает метод Площадь
         Координаты ? *: XY, читает поле "Координата", пишет в метод "Переместить * в"
Конец
Я вижу следующим образом:

Код:
Класс Фигура
  Данные внутреннего пользования // Или Внутренние данные
          //поля начинаются с "-"
          //методы просто так
          //вместо * при вызове будет указан экземпляр класса
          //вместо ? - поле записи
         -   Название типа: строка
         -   Площадь: с точкой
         -   Координата: XY 
         Площадь: с точкой
  Доступные методы
         Конструктор Создать экземпляр класса *
         Площадь: с точкой
         Переместить * в (x, y: целое)
  Открытые свойства  // публичные у меня почему-то ассоцируются с домами :)
         Площадь *: с точкой, читает метод Площадь
         Координаты ? *: XY, читает поле "Координата", пишет в метод "Переместить * в"
Конец
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 19.08.2009 в 20:47.
Utkin вне форума Ответить с цитированием
Старый 19.08.2009, 20:37   #79
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Координаты ? *: XY, читает поле "Координата", пишет в метод "Переместить * в"
Конец

.....................

Реализация:

Конструктор Создать экземпляр класса *
Начало
Создать Базовый класс //типа inherited
Конец

Переместить * в (x, y: целое)
Начало
Если х не в диапазоне 0..640 или y не в диапазоне 0..480
то прервать
иначе Координата Х * = х и Координата Y * = y
Конец

Площадь *: с точкой
Начало
//посчитать... )
вернуть ...
Конец

................

Треугольник: фигура

Создать экземпляр класса треугольник
Переместить треугольник в (10, 20)
Какой ужас!!!
Надеюсь я не доживу до того момента когда придется программировать на русском ...
Вадим Буренков вне форума Ответить с цитированием
Старый 19.08.2009, 20:44   #80
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Просто нужно слегка доработать.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как печатать на русском cergey82 Паскаль, Turbo Pascal, PascalABC.NET 6 07.07.2009 01:08
Сообщение на русском языке!!! Ruska882009 Помощь студентам 1 04.05.2009 12:49
Direct X 9.0 Мануал на русском Andrew#90 Общие вопросы .NET 0 23.11.2008 22:35
SolidWorks API на русском Stilet Свободное общение 5 03.07.2008 14:16
Help в delphi на русском языке jenja Общие вопросы Delphi 2 24.04.2008 17:53