Языки программирования с русским синтаксисом

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Языки программирования с русским синтаксисом » БлэкБокс (Компонентный Паскаль) » BlackBox 1.5 с русскими операторами - Альфа Версия


BlackBox 1.5 с русскими операторами - Альфа Версия

Сообщений 1 страница 23 из 23

1

http://forum.oberoncore.ru/viewtopic.php?f=7&t=1392 - ссылка
Пока это самый перспективный проект
пока нет :
1. хорошего перевода всех операторов на русский язык
2. документации по Компонентному Паскалю с русскими операторами

0

2

Вот что получилось. Одна голова хорошо а, 2-е лучше. Может кто предложит другие варианты???
Перевод заточен под обучение. По этому некоторые термины переводятся так, чтобы не приходилось вспоминать

(23 марта 09) Частично перевод в приведён в соответствие с Глаголом.

Обратите внимание на:
слово IN - 2 значения - вхождение в множество было В
                                  - указание  что переменная передаваемая процедуре для записи - не было однозначного перевода
слово NEW -2 значения  - Создать (объект)
                                     - Новый (описание типа объекта)

слово POINTER TO - ДОСТУП К - желательно конечно УКАЗАТЕЛЬ НА - как во всей программистской литературе , но из за желания сделать возможной перекодировку  РУС<->ЛАТ пока оставлю так (слово TO - используется ещё в цикле FOR)

как перевести INF ? BITS- ? - не знаю, ваши предложения??

Код:
(* Русский перевод операторов Компонентного Паскаля. Версия 23.03.09 Бетта*)

&        	И
~        	НЕ
ABS        	ПО_МОДУЛЮ
ASH        	АРИФМЕТИЧЕСКИЙ_СДВИГ

ARRAY        МАССИВ
ASSERT    	        ПРОВЕРИТЬ
BEGIN        НАЧАЛО
BOOLEAN    	        ЛОГИЧЕСКАЯ
BY        	С_ШАГОМ
BITS        	В_БИТЫ
BYTE                БАЙТ
CASE    	  	ВЫБРАТЬ
CHAR        СИМВОЛ_УНИКОД
SHORTCHAR            СИМВОЛ_Latin1
CHR        	В_СИМВОЛ
CAP        	ЗАГЛАВНАЯ_ЛАТ
CONST        ПОСТОЯННЫЕ
CLOSE     	        ЗАКРЫТИЕ_МОДУЛЯ
DEC        	УМЕНЬШИТЬ
DIV        	ЦЕЛАЯ_ЧАСТЬ
DO        	ВЫПОЛНИТЬ
ELSE                ИНАЧЕ
ELSIF        А_ЕСЛИ
END                КОНЕЦ
ENTIER    	        МАКС_ЦЕЛОЕ
EXIT                ВЫХОД
FALSE    	        ЛОЖЬ
FOR                ОТ
HALT                ОСТАНОВИТЬ_ПРОГРАММУ  
IF        	ЕСЛИ
IMPORT    	        ИСПОЛЬЗОВАТЬ
IN        	ВХ
OUT                ВЫХ
VAR	        	        ПЕР
INC        	УВЕЛИЧИТЬ
INTEGER    	        ЦЕЛОЕ
IS        	ЯВЛЯЕТСЯ
LEN        	РАЗМЕР
LONGINT    	        ЦЕЛОЕ_ БОЛЬШОЕ
LOOP        КОЛЬЦО
MAX                МАКС
MIN        	МИН
MOD                ОСТАТОК
MODULE    	        МОДУЛЬ
NEW                СОЗДАТЬ
NIL        	ПУСТО
ODD                НЕ_ЧЕТ
OF        	ИЗ
OR        	ИЛИ
ORD        	НОМЕР_БУКВЫ  
POINTER        ДОСТУП
PROCEDURE    	ПРОЦЕДУРА
REAL        	ВЕЩЕСТВЕННОЕ
SHORTREAL    	ВЕЩЕСТВЕННОЕ_МАЛОЕ
RECORD        ЗАПИСЬ
REPEAT        ПОВТОРЯТЬ
RETURN        ВОЗВРАТ
SET        	МНОЖЕСТВО
SHORT        КОРОТКОЕ
SHORTINT    	        ЦЕЛОЕ_МАЛОЕ
THEN        	ТО
TO        	К
TRUE        	ПРАВДА
TYPE        	ТИПЫ
UNTIL        ДО

VAR        	ПЕРЕМЕННЫЕ
WHILE        ПОКА
WITH             ЕСЛИ_ТИП


ABSTRACT    	ДЛЯ_НАСЛЕДОВАНИЯ
EXTENSIBLE    	ПЕРЕОПРЕДЕЛЯЕМЫЙ
LIMITED        ВНУТРИ_МОДУЛЯ
EMPTY        ПУСТОЙ

EXCL        	ИСКЛЮЧИТЬ
INCL        	ВКЛЮЧИТЬ
SIZE        	РАЗМЕР
FINALIZE        ФИНАЛИЗИРОВАТЬ
ASSERT        ПРОВЕРИТЬ

INF                                   ????

Отредактировано rusprog (23-03-2009 16:40:58)

0

3

Что значит тождественно? Некоторые английские обозначения не имеют аналога на русском. Их нужно дополнить?
Bits - наверно биты, хотя я не силен в английском.
Возможно для НЕ можно поискать другой аналог. Может инверсия?
Is можно попробовать заменить на ИЗ  8-) . Если А из Б то Я. По-моему неплохо.  Там конечно ИЗ есть, но может имеется возможность использовать и здесь?

0

4

utkin295 написал(а):

Что значит тождественно? Некоторые английские обозначения не имеют аналога на русском. Их нужно дополнить?
Bits - наверно биты, хотя я не силен в английском.
Возможно для НЕ можно поискать другой аналог. Может инверсия?
Is можно попробовать заменить на ИЗ  8-) . Если А из Б то Я. По-моему неплохо.  Там конечно ИЗ есть, но может имеется возможность использовать и здесь?

Важное замечание - по МОЕМУ ОПЫТУ (кстати на этот текст я затратил ~ 8 часов  ) переходить надо не англо-русским словарём, а с описанием языка!! А англо-русском словаре искать синонимы!!
Например оператор CASE в Си и КП используется в разных местах конструкции Select-Case , и соответственно переводится по разному (в СИ - ВАРИАНТ, в паскале  - ВЫБРАТЬ  ИЗ).
Даже в английских терминах нет единства понятий!!

тоже самое с оператором RETURN

Ещё пример

BEGIN - есть 2 варианта использования
BEGIN END -  логические скобки - > НАЧАЛО КОНЦ

BEGIN - начало секции инициализации модуля - > я их логически разделил - зачем объединять 2 разных программных понятия в одном слове??
чтобы операторов было меньше???
а зачем ??? чтобы язык был проще (в обучении)??? так назови всё своими именами, чтобы увидев оператор не приходилось лезть в справочник (для редко используемых операторов) и даже задумываться - это логические скобки или инициализация модуля??? !!!
Открываем описание КП. Что выполняет оператор BEGIN в конструкции описания модуля??? он обозначает начало инициализации модуля. Так и назовём ИНИЦИАЛИЗАЦИЯ_МОДУЛЯ . что бы не ошибиться и меньше разбирать ТЕКСТ программы и больше думать над её  логикой и структурой!!

0

5

А что насчет инверсии? Я же не против, я только предложил вариант.
Кстати, не думаю, что ИЗ пересекалось бы и человек запутался в контексте программы. Иное дело возможно ли это в данном проекте? Допускает ли транслятор использование одинаковых ключевых слов в разных местах?
А насчет тождественности напротив Short и Long? Мне просто не понятно, объясните, что Вы подразумеваете под этим?

0

6

utkin295 написал(а):

А насчет тождественности напротив Short и Long? Мне просто не понятно, объясните, что Вы подразумеваете под этим?

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

----описание КП -----

Код:
10.3 Предопределенные процедуры

Следующая таблица дает список предопределенных процедур. Некоторые процедуры являются обобщенными, т.е. они применимы к разным типам операндов. v представляет переменную, x и y — выражения, а T — тип. Первая подходящая строка дает правильный тип результата.

Процедуры-функции

Имя	Тип аргументов	Тип результата	Функция

ABS(x)	<= INTEGER	INTEGER	абсолютное значение
	вещественный тип, 
	LONGINT	тип x
ASH(x, y)	x: <= INTEGER	INTEGER	арифметический сдвиг (x * 2^y)
	x: LONGINT	LONGINT
	y: целый тип
BITS(x)	INTEGER	SET	{i | ODD(x DIV 2^i)}
CAP(x)	литерный тип	тип x	x — буква из набора Latin-1:
    	соответствующая большая буква
CHR(x)	целый тип	CHAR	литера с порядковым номером
    	x
ENTIER(x)	вещественный тип	LONGINT	наибольшее целое, не 
    	превосходящее x
LEN(v, x)	v: массив; x: целая	INTEGER	длина v в измерении x
	константа    (первое измерение = 0)
LEN(v)	тип массивов	INTEGER	эквивалентно LEN(v, 0)
	String <цепочка>	INTEGER	длина цепочки
    	(не считая 0X)
LONG(x)	BYTE	SHORTINT	тождество
	SHORTINT	INTEGER
	INTEGER	LONGINT
	SHORTREAL	REAL
	SHORTCHAR	CHAR
	Shortstring	String
MAX(T)	T = основной тип	T	максимальное значение для типа T
	T = SET	INTEGER	максимальный элемент множества
MAX(x, y)	<= INTEGER	INTEGER	большее значение из x и y
	целый тип	LONGINT
	<= SHORTREAL	SHORTREAL
	числовой тип	REAL
	SHORTCHAR	SHORTCHAR
	литерный тип	CHAR
MIN(T)	T = основной тип	T	минимальное значение для типа T
	T = SET	INTEGER	0
MIN(x, y)	<= INTEGER	INTEGER	меньшее значение из x и y
	целый тип	LONGINT
	<= SHORTREAL	SHORTREAL
	числовой тип	REAL
	SHORTCHAR	SHORTCHAR
	литерный тип	CHAR
ODD(x)	целый тип	BOOLEAN	x MOD 2 = 1
ORD(x)	CHAR	INTEGER	порядковый номер литеры x
	SHORTCHAR	SHORTINT	порядковый номер литеры x
	SET	INTEGER	(SUM i: i IN x: 2^i)
SHORT(x)	LONGINT	INTEGER	тождество
	INTEGER	SHORTINT	тождество
	SHORTINT	BYTE	тождество
	REAL	SHORTREAL	тождество (возможно усечение)
	CHAR	SHORTCHAR	проекция
	String	Shortstring	проекция
SIZE(T)	любой тип	INTEGER	количество байт, требуемое для T

SIZE не может применяться в константных выражениях, т.к. его з

0

7

Сый написал(а):

> я нормально не разобрался как они работают
А можно ли создавать набор служебных слов для языка, не зная его до такой степени, что составляет трудность разобраться в преобразовании видов данных?

нормально - понятие растяжимое ... 
Если не я то кто же...?? Я профессиональным программистом не являюсь. Программирую время от времени по мере необходимости. В основном на VB. С удовольствием воспользовался готовым продуктом. Но его нет. Что  могу я делаю. В чём плохо разбираюсь спрашиваю у тех кто знает. А от профессионалов - в место советов основном только не конструктивная критика на уровне разговоров в курилке и флейм.
По языку кроме вас 2-х ни кто никаких предложений не с делал. Зато флейму ...

0

8

Сый написал(а):

> А насчет тождественности напротив Short и Long?
Имеется ввиду тождественность выражения x = УЗК(x).

я не понимаю его смысл - объясни пожалуйста по подробней...

0

9

rusprog написал(а):

По языку кроме вас 2-х ни кто никаких предложений не с делал. Зато флейму ...

А какой смысл предлагать, если предложения тонут в потоке ненужного флейма???

0

10

Мудрец написал(а):

А какой смысл предлагать, если предложения тонут в потоке ненужного флейма???

0. Я просто опубликовал результаты своей работы.
1. Ну ну Utkin295 и Сый нашли некоторые ошибки  и сделали пару дельных предложений.
2. В сети был доступен только маленький огрызок с 10-ю операторами, (перевод которых мне тоже не очень понравился - но сколько людей столько мнений), теперь в списке все ключевые слова. т.к. на 1-го пишущего 10 читающих - может кому и сгодится.
3. Я ожидал от форума на оберонкоре - большего, там всё таки много хороших специалистов по КП и оберону. Я думал будет много замечаний по тексту, но его просто не заметили :( - ни одного замечания!!! Стали переходить на личности :)

0

11

Сый написал(а):

А можно ли создавать набор служебных слов для языка, не зная его до такой степени, что составляет трудность разобраться в преобразовании видов данных?

Может взять слова от Глагола ??? и убрать сокращения?? зато будет готовый учебник (от Глагола)

0

12

utkin295 написал(а):

Возможно для НЕ можно поискать другой аналог. Может инверсия?
Is можно попробовать заменить на ИЗ  8-) . Если А из Б то Я. По-моему неплохо.  Там конечно ИЗ есть, но может имеется возможность использовать и здесь?

будет конфликт с к ARRAY OF - МАССИВ ИЗ //
такая же проблема с POINTER TO - УКАЗАТЕЛЬ НА // 
НЕОБХОДИМО БУДЕТ ПРАВИТЬ КОНВЕРТОР, НО ХОРОШИЕ СЛОВА ТОГО СТОЯТ.

0

13

rusprog написал(а):

3. Я ожидал от форума на оберонкоре - большего, там всё таки много хороших специалистов по КП и оберону. Я думал будет много замечаний по тексту, но его просто не заметили :( - ни одного замечания!!! Стали переходить на личности :)

Я тоже это заметил, когда пытался донести мысль о русскоязычном программировании. Но все свелось сначала к Валентине, а потом и лично ко мне  o.O
Возможно в этом проблема Оберона. Он слишком оторван от жизни. Академики могут вечно обсасывать красявости, простоту и удобство, в тоже время как С++ не хаяли (и я в том числе :) ), а на нем пишут и не мало. Оберон же распространен не так сильно, как тот же Делфи.

0

14

Конфликт какого рода? В трансляторе или при восприятии текста?
Насколько я знаю МАССИВ ИЗ должен использоваться строго при объявлении структур данных (переменных, записей и прочее). В тоже время операция над множествами никогда там не встречается. Они просто не пересекаются в тексте. Иное дело если устройство транслятора таково, что такая система обозначений недопустима.

Может взять слова от Глагола ??? и убрать сокращения?? зато будет готовый учебник (от Глагола)

Из Глагола брать не следует. Не потому что там набор слов плох или он кому-то не нравится. Просто необходимо искать свой путь. Даже если Вы не настолько сильны в данном языке (как и я :)). Можно допустим взять служебные слова Глагола за основу, но слепое копирование недопустимо. Кроме того, если Вы достигните цели, возможна путаница.

0

15

Сый написал(а):

> слепое копирование недопустимо
Никто и не спорит. Но, помнится мне, кто-то сетовал на отсутствие стандарта на это дело...

Я писал это rusprog  :), имея ввиду как раз факт отсутствия стандарта.
Если же на роль стандарта выдвигаются служебные слова от Глагола, я не спорю, но об этом пока ни где не сказано. Пока это стандарт Глагола.

0

16

Short - короткий, Long - соответственно длинный. Спор о тождественности на мой взгляд излишен, поскольку зашел не в то русло. Изначально о тождественности спросил я, потому что там стояли знаки вопроса. Я просто не понял зачем это там. Предлагаю rusprog подвести итог и выложить обновленную версию, с учетом пожеланий и исправлений.

0

17

последний вариант от 23 марта - обеспечена возможность простой конвертации - рус-лат

0

18

вчера вышла новая версия от info21

0

19

http://www.inr.ac.ru/~info21/software.htm - вот адрес где можно скачать компонентный Паскаль с русским языком - последнюю версию

0

20

Насколько я понял для BlackBox написан фильтр который меняет русские слова на английские. А для free pascal может кто нибудь подобный фильтр написать. Особенно интересует возможность ручного редактирования словаря.

0

21

Есть подобная разработка (только там свой язык программирования) на programmersforum.ru
Далее можно использовать транслятор - переводить тексты из Ваших слов в операторы free pascal. Однако здесь полно своих минусов. В частности придется отказаться, например, от Лазаруса. Зато можно настроить подсветку в стороннем редакторе (при условии если Ваш язык будет всего лишь однозначным переводом слово в слово).

0

22

Дело в том что я не программист и в программировании ничего не понимаю. А интерес к данной теме обусловлен попыткой подобрать в русском(древнерусском) языке смысловые аналоги к синтаксису паскаля. И посмотреть что из этого получится. Если интересно могу скинуть таблицу с тем что у меня получилось. Вдруг пригодится.

0

23

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

Отредактировано utkin295 (21-03-2011 07:45:30)

0


Вы здесь » Языки программирования с русским синтаксисом » БлэкБокс (Компонентный Паскаль) » BlackBox 1.5 с русскими операторами - Альфа Версия