Форум программистов, компьютерный форум, киберфорум
Наши страницы
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.56/75: Рейтинг темы: голосов - 75, средняя оценка - 4.56
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
#1

[V] Хорош ли синтаксис языка программирования V?

24.03.2015, 08:17. Просмотров 13872. Ответов 77

Создаю язык программирования для CGI и текстовых терминалов. Сайт www.vlang.ru. Ищу конструктивную критику синтаксиса языка.

Пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
?Use("include.vsc") // присоединяет файл с кодом, исключает дублирование
_Счетчик Отобразить(_Строка) импорт _ОтобразитьСтроку;
 
?Шаблон Клон-Тип1(
    Тип1 Клон(Тип1 пА):
        Тип1 лРез;
        __ИзСтроки(лРез, пА.__ВСтроку, 0);
        =лРез;
    .
)
?Шаблон на-Тип1(
    Тип1 на(Тип1 *пА):
        =пА;
    .
    Тип1 на(Тип1 !пА):
        =пА;
    .
)
~ТРезультат(_0 А, Б, И):
.
~ТРезультат2(_0 А):
.
 
-> АвтоШаблоны(): // начало исполнения
    ТРезультат лТРезультат; лТРезультат.А=123; лТРезультат.Б=777; лТРезультат.И=100500;
    Отобразить(лТРезультат.Клон.на.__ВСтроку+"\н"); // "Клон" и "на" автоматически создаются
    ТРезультат2 лТРезультат2; лТРезультат2=999;
    Отобразить(Клон(на лТРезультат2).__ВСтроку+"\н"); // "Клон" и "на" автоматически создаются
    <-0; // возврат кода завершения
.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2015, 08:17
Ответы с готовыми решениями:

Выбор языка программирования
Добрый день, посетители форума. Мой путь в программирование начался 2 года...

Ребят, презентация нового языка программирования ObjectScript
Сколько же существует всяких языков программирования, еще один? Ну можно и так...

Синтаксис какого языка программирования наиболее читабелен?
Здравия всем! Пытаюсь тут ЯП пилить, но вот проблема, не могу подобрать...

Что мне может дать знание языка Perl и чем он хорош?
Думаю начать изучать язык Perl. Чем то он мне понравился. Но думаю - стоит или...

По русскому названию языка программирования определить английское название этого языка
Задача на перечисляемый тип P=(ада, бейсик, модула2, лисп, паскаль, пл2,...

77
CoderHuligan
799 / 475 / 198
Регистрация: 30.06.2015
Сообщений: 2,575
Записей в блоге: 3
29.05.2017, 13:49 #61
Язык с русским синтаксисом радует мой глаз. Если бы были вменяемые языки, то несомненно программировал бы только на русских ЯП. Это же очевидно, что гораздо легче программировать имея возможность думать на своём родном языке. Англичане именно так и поступают поэтому они продуктивнее нас во много раз. Для них это естественно, а нам нужно мыслить в терминах английской лексики. Придумывать имена функций, переменных и т. п. по английски. Но это противоестественно и всегда меня напрягает. Постоянно ловлю себя на мысли: как было бы легче выражать свои идеи на своём родном языке. Приходится тратить много времени просто придумывая имена на английском. Будущее русского программирования за русской лексикой. Это однозначно.
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
29.05.2017, 14:44 #62
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Язык с русским синтаксисом радует мой глаз. Если бы были вменяемые языки, то несомненно программировал бы только на русских ЯП. Это же очевидно, что гораздо легче программировать имея возможность думать на своём родном языке. Англичане именно так и поступают поэтому они продуктивнее нас во много раз. Для них это естественно, а нам нужно мыслить в терминах английской лексики. Придумывать имена функций, переменных и т. п. по английски. Но это противоестественно и всегда меня напрягает. Постоянно ловлю себя на мысли: как было бы легче выражать свои идеи на своём родном языке. Приходится тратить много времени просто придумывая имена на английском. Будущее русского программирования за русской лексикой. Это однозначно.
Уход от англоязычности возможен только в каких-нибудь новых языках программирования, которые не завязаны на 256 символьную раскладку. При этом чтобы полностью избавиться от английского в таком языке должны быть предусмотрены специальные средства. Ведь даже если не будет ключевых слов на английском, то основные функции типа SQRT() или SIN() все-равно должны как-то называться, и их базовый вариант будет иметь название на каком-то одном языке - английском или каком либо другом. И это конечно будет английский, ведь еще со школы все пишут x=sin(y), а не п=син(ф).
Например в своем языке программирования SPL я предусмотрел очень простую возможность использовать только один язык в коде программы, причем любой - хоть русский, хоть китайский. И мне будет очень интересно посмотреть, сможет ли кто-нибудь в другом языке программирования сделать это более удобно.
0
CoderHuligan
799 / 475 / 198
Регистрация: 30.06.2015
Сообщений: 2,575
Записей в блоге: 3
29.05.2017, 15:17 #63
Цитата Сообщение от Mr_K Посмотреть сообщение
Уход от англоязычности возможен только в каких-нибудь новых языках программирования, которые не завязаны на 256 символьную раскладку.
Как раз хорошо было бы если бы язык был завязан на 256 символьную раскладку, что позволило бы использовать русские имена. Это осуществлено по моему только в php, на котором можно использовать русские имена. В си, например, используется 128-символьная раскладка, что не позволяет использовать русский язык.
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
29.05.2017, 16:23 #64
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Как раз хорошо было бы если бы язык был завязан на 256 символьную раскладку, что позволило бы использовать русские имена. Это осуществлено по моему только в php, на котором можно использовать русские имена. В си, например, используется 128-символьная раскладка, что не позволяет использовать русский язык.
Это должен быть Юникод.
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
30.05.2017, 11:29  [ТС] #65
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
мне достаточно посмотреть на ваши примеры, а именно как вы именуете переменные.
И в чём проблема? Где вывод?
Скорее всего примеры вам непонятны, а комментарии ваши троллические.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
CGI+Apache было актуально в двухтысячные.
Это вывод специалиста по высоконагруженным интернет порталам?

Добавлено через 5 минут
Цитата Сообщение от Mr_K Посмотреть сообщение
Например в своем языке программирования SPL я предусмотрел очень простую возможность использовать только один язык в коде программы, причем любой - хоть русский, хоть китайский. И мне будет очень интересно посмотреть, сможет ли кто-нибудь в другом языке программирования сделать это более удобно.
Заменить ключевые слова на символы - это проблема века?

В V есть такое:

Если / If / %

%А==1:
,%~:
.

Добавлено через 3 минуты
Цитата Сообщение от Mr_K Посмотреть сообщение
Это должен быть Юникод.
V использует UCS-2 для внутреннего представления кода программы. Пишите переменные хоть на хинди.
0
Dmitriy_M
1422 / 1303 / 130
Регистрация: 20.03.2009
Сообщений: 4,655
Записей в блоге: 11
30.05.2017, 11:38 #66
Цитата Сообщение от vic_one Посмотреть сообщение
Это вывод специалиста по высоконагруженным интернет порталам?
Да.
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
30.05.2017, 12:10  [ТС] #67
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Да.
Какой поддерживаете в данный момент?
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
30.05.2017, 16:27 #68
Цитата Сообщение от vic_one Посмотреть сообщение
Заменить ключевые слова на символы - это проблема века?

В V есть такое:

Если / If / %

%А==1:
,%~:
.
В V оператор / заменяет одно ключевое слово на другое? Или к значению существующего ключевого слова добавляет еще одно значение? Смысл вашей записи с ходу не понятен. Вы можете ее пояснить?
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
30.05.2017, 16:35  [ТС] #69
Цитата Сообщение от Mr_K Посмотреть сообщение
В V оператор / заменяет одно ключевое слово на другое? Или к значению существующего ключевого слова добавляет еще одно значение? Смысл вашей записи с ходу не понятен. Вы можете ее пояснить?
Цитата Сообщение от Mr_K Посмотреть сообщение
Если / If / %
это уже в ядре парсера. Есть 3 варианта записать условный блок.
Нет ни единой проблемы с подменой Ключевых слов на произвольные, но это хитрый путь.
0
Mr_K
11 / 11 / 0
Регистрация: 19.03.2016
Сообщений: 64
30.05.2017, 16:42 #70
Раз уж зашла тема о многоязычности, то было бы интересно посмотреть два примера кода на V: просто в цикле печать 10 расчетов функции синус с аргументом этого цикла. Один раз - чтобы синтаксис использовался на английском языке, а вторая программа - то же самое, но синтаксис на русском языке. Такое возможно?
0
CoderHuligan
799 / 475 / 198
Регистрация: 30.06.2015
Сообщений: 2,575
Записей в блоге: 3
30.05.2017, 16:45 #71
Цитата Сообщение от Mr_K Посмотреть сообщение
Это должен быть Юникод.
Да.
0
Dmitriy_M
1422 / 1303 / 130
Регистрация: 20.03.2009
Сообщений: 4,655
Записей в блоге: 11
30.05.2017, 21:22 #72
Цитата Сообщение от vic_one Посмотреть сообщение
Какой поддерживаете в данный момент?
Сейчас работаю на компанию по интернет-трейдингу.

Да же www.vlang.ru работает по fastcgi на FreeBSD, а вы предлагаете apache+cgi+windows.
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
31.05.2017, 10:20  [ТС] #73
Цитата Сообщение от Mr_K Посмотреть сообщение
Раз уж зашла тема о многоязычности, то было бы интересно посмотреть два примера кода на V: просто в цикле печать 10 расчетов функции синус с аргументом этого цикла. Один раз - чтобы синтаксис использовался на английском языке, а вторая программа - то же самое, но синтаксис на русском языке. Такое возможно?
C
1
2
3
4
        @___________++ 10:
        Синус ___________. Отобразить "\н";
        Print(___________.Sin, "\n");
    .
Этого для окончание темы многоязычности хватит с избытком.

Добавлено через 3 минуты
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Да же www.vlang.ru работает по fastcgi на FreeBSD
Это не означает, что сайт использует fastcgi.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Сейчас работаю на компанию по интернет-трейдингу.
Понятно про специализацию. И причём тут вебпорталы с кучей статики?
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
25.06.2017, 10:55  [ТС] #74
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ТРаботник лТРаботник;
    Запустить лТРаботник;
    ТТип лТТип;
    Задача лТТип
         .Добавить {ТТип А: отображение("А1.А="+ А.А._С +"\н"); А.А=1; =0}
         .Параллельно {ТТип А: отображение("А1.А="+ А.А._С +"\н"); А.А=А.А+2; =0}
         .Добавить 5{ТТип А: отображение("А1.А="+ А.А._С +"\н"); А.А=А.А+13; =0}
    в лТРаботник;
    отображение("лТТип.А="+ лТТип.А._С +"\н");
 
    ТТип лТТип2;
    Задача лТТип2
         .Добавить {ТТип А: А.А=1; =0}
         .Добавить 10{ТТип А: отображение("А2.А="+ А.А._С +"\н"); А.А=А.А+1; =0}
    в лТРаботник;
    отображение("лТТип2.А="+ лТТип2.А._С +"\н");
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
21.09.2017, 06:20  [ТС] #75
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
?Использовать("include.vsc") // присоединяет файл с кодом, исключает дублирование
 
Программа ВнедрениеСопряженийВТипы(): // начало исполнения
    *лТ1={
        Тип ТТ1(_Строка А):
        .
        Функция Новый(ТТ1 П):
            ТТ1 лРез; =лРез;
        .
        ():
            ТТ1 лРез; =лРез;
    }();
    *лТ2={
        Тип ТТ2(_Строка А,Б):
        .
        Функция Новый(ТТ2 П):
            ТТ2 лРез; =лРез;
        .
        ():
            ТТ2 лРез; =лРез;
    }();
    *лСпТ1Т2={
        Сопряжение Со1:
            -(_лТ1_, _лТ2_);
            _Строка ТипСтрокой(Со1);
        .
        Функция ТипСтрокой(_лТ1_ П):
            ="_лТ1_";
        .
        Функция ТипСтрокой(_лТ2_ П):
            ="_лТ2_";
        .
        Список Сп1(Со1):
        .
        ():
            Сп1 лРез; =лРез;
    }();
 
    лСпТ1Т2+=Новый лТ1;
    лСпТ1Т2+=Новый лТ2;
 
    Каждый лЭл++ из лСпТ1Т2:
        отображение(ТипСтрокой лЭл + "\н");
    .
 
    Конец 0; // возврат кода завершения
.
Добавлено через 15 секунд
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
?Использовать("include.vsc") // присоединяет файл с кодом, исключает дублирование
 
Программа ВнедрениеСопряженийВТипы(): // начало исполнения
    *лТ1={
        Тип ТТ1(_Строка А):
        .
        Функция Новый(ТТ1 П):
            ТТ1 лРез; =лРез;
        .
        ():
            ТТ1 лРез; =лРез;
    }();
    *лТ2={
        Тип ТТ2(_Строка А,Б):
        .
        Функция Новый(ТТ2 П):
            ТТ2 лРез; =лРез;
        .
        ():
            ТТ2 лРез; =лРез;
    }();
    *лСпТ1Т2={
        Сопряжение Со1:
            -(_лТ1_, _лТ2_);
            _Строка ТипСтрокой(Со1);
        .
        Функция ТипСтрокой(_лТ1_ П):
            ="_лТ1_";
        .
        Функция ТипСтрокой(_лТ2_ П):
            ="_лТ2_";
        .
        Список Сп1(Со1):
        .
        ():
            Сп1 лРез; =лРез;
    }();
 
    лСпТ1Т2+=Новый лТ1;
    лСпТ1Т2+=Новый лТ2;
 
    Каждый лЭл++ из лСпТ1Т2:
        отображение(ТипСтрокой лЭл + "\н");
    .
 
    Конец 0; // возврат кода завершения
.
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
23.11.2017, 16:39  [ТС] #76
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Функция Интересная(_Счетчик А):
    Если А<2:
        отображение "1) А<2\н";
        А=А+2; 
                =; // перезапуск функции
    .
    Если А<7:
        отображение "2) А<7\н";
        А=А+3; =;
    .
    =А;
.
 
Программа ФункцииОбёртки(): // начало исполнения
    отображение("Интересная(0)="+(Интересная(0))+"\н------------------------\н");
    отображение("Интересная(1)="+(Интересная(1))+"\н------------------------\н");
    отображение("Интересная(2)="+(Интересная(2))+"\н------------------------\н");
Конец 0; // возврат кода завершения
.
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
13.01.2018, 10:51  [ТС] #77
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
_СписокТекста л_СписокТекста;
    л_СписокТекста+="С\н";
    л_СписокТекста+=(FnGen(
        {():=""},<<():= "2018\н";
.
>>))();
    л_СписокТекста+=(FnGen(
        {():=""},<<():= "годом!!!!!!!!!!!!!!!!!!!!!!!!!!!\н";
.
>>))();
    Каждый лТ++ из л_СписокТекста:
        отображение лТ;
    .
0
vic_one
47 / 7 / 0
Регистрация: 20.03.2015
Сообщений: 56
15.06.2018, 12:12  [ТС] #78
C
1
2
3
4
5
6
7
8
9
10
*Ф=Если(0, Блок(А+Б), Блок(А+Б+Б)); // тернарный Если(,,)
        *АБ=Ф; // вычисляется Блок
        отображение(Р(Ф)+"\н");
        Б="2";
        отображение(Р(Ф)+"\н");
        А="3";
        отображение(Р(0(Блок("1) "+А+Б), Блок("0) "+А+Б)))+"\н");
        
        отображение(1(Блок("1) "+А+Б+А), Блок("0) "+А+Б+А))+"\н");
        отображение(0(Блок("1) "+А+Б+А), Блок("0) "+А+Б+А))+"\н");
0
15.06.2018, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2018, 12:12

С какого языка стоит начать обучение? С языка программирования Pascal?
Здравствуйте. Хотелось бы больше знать о компьютерной безопасности, в...

По русскому названию языка программирования присвоить переменной английское название этого языка
Дан перечень названий языков програм. на русском и англ. языках.По русскому...

Выбор языка программирования для разработки среды программирования
Возникла мысль о создании ЯПа. Ныне популярные ЯПы не универсальны, либо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
78
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru