Форум программистов, компьютерный форум, киберфорум
Другие языки программирования
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
Почётная Гиппопрограмма
92 / 83 / 18
Регистрация: 09.07.2019
Сообщений: 912
Записей в блоге: 5
1

Группы языков программирования

25.06.2020, 14:32. Просмотров 1873. Ответов 16
Метки нет (Все метки)

Мне нужно сгруппировать языки в которых синтаксис блока такой (1 группа):
Код
блок [параметры]{
    [код]
}
такой (2 группа):
Код
блок [параметры]:
    код
и такой (3 группа):
Код
блок begin;
    [код]
end;
Есть ли подобные группы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2020, 14:32
Ответы с готовыми решениями:

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

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

Перечислите все плюсы и минусы языков программирования Perl и PHP
Что может написать программист на Perl и чего не сможет написать программист на PHP

С++ 4 и 5 поколение языков программирования
Является ли С++ языком 4 поколения? Пятое поколение определяет судьбу программистов С++ в...

16
Просто Лис
Эксперт Python
4232 / 2643 / 909
Регистрация: 17.05.2012
Сообщений: 7,896
Записей в блоге: 9
25.06.2020, 15:25 2
Лисп посмотри - уникально простой синтаксис

1-я группа - большинство современных языков. С некоторыми отличиями, например, раст не требует скобок в блоке IF:
Код
if n < 0 {
  println!("<");
} else if n > 0 {
  println!(">");
} else {
  println!("==");
}
C
1
2
3
if (n > 0) {
 
}
Хотя, если быть точным, то это две разные синтаксические диаграммы (if/while/прочее и блок):
Код
IF: 
    if ( EXPR ) STM …

STM:
    ;
    | BLOCK

BLOCK:
     { … }
2-я группа только у питона (отступы являются частью синтаксиса).

3-я группа: старые языки. Паскаль?.. Из современных только знаю PL/SQL.
0
Почётная Гиппопрограмма
92 / 83 / 18
Регистрация: 09.07.2019
Сообщений: 912
Записей в блоге: 5
25.06.2020, 15:35  [ТС] 3
Рыжий Лис, так я и думал.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30759 / 20091 / 7849
Регистрация: 22.10.2011
Сообщений: 34,909
Записей в блоге: 6
25.06.2020, 17:26 4
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
3-я группа: старые языки
Старые? Oberon.../Modula.../Ada/Zonnon? Ярлыки уберите. Нет старых языков. Есть чересчур распиаренный шлак, а есть языки, на которых пишут программы (а не продираются сквозь нагромождения разных непонятных символов). Вот третья группа - как раз про это.
1
Почётная Гиппопрограмма
92 / 83 / 18
Регистрация: 09.07.2019
Сообщений: 912
Записей в блоге: 5
25.06.2020, 19:05  [ТС] 5
Рыжий Лис, тоесть я как и хотел могу назвать группы так?
Номер группыНазвание группы
1C
2Python
3Pascal
0
Просто Лис
Эксперт Python
4232 / 2643 / 909
Регистрация: 17.05.2012
Сообщений: 7,896
Записей в блоге: 9
25.06.2020, 19:19 6
Можешь, кто тебя остановит

Добавлено через 3 минуты
На лисп хоть одним глазком глянь: Функциональное программирование на Lispe

Добавлено через 38 секунд
Позиционирование скобок относительно данных и разделение длинного выражения на отдельные строки

Добавлено через 3 минуты
А вот "паскалеподобный" PL/SQL: Функциональное программирование на Lispe
0
4048 / 2626 / 371
Регистрация: 01.06.2013
Сообщений: 5,599
Записей в блоге: 9
27.06.2020, 12:34 7
Для первой группы, если широко трактовать что блок, а что параметры, вся группа языков с блоком выделяемым фигурными скобками - С,С++,С#,rust,java,kotlin,scala,go.

Вторая группа - питон.

Третья группа - по моему нет такого языка в котором ключевое слово begin заканчивалось бы ;.
А если без этой ";", то, из не устаревших (то есть,и сейчас достаточно широко используемых), pascal,delphi,ada, наверное все диалекты SQL где есть хранимые процедуры.

Цитата Сообщение от volvo Посмотреть сообщение
Нет старых языков.
Объективно есть. Те, которые были созданы давно. А есть новые, которые созданы недавно.
Старый и устаревший, прилагательные разные, хотя корреляция между старым и устаревшим есть. Некоторые старые устарели (алгол).
2
4297 / 3296 / 339
Регистрация: 12.03.2013
Сообщений: 5,805
27.06.2020, 13:07 8
И в си фигурные скобки не относятся к синтаксису "блоков", и в паскале begin-end. Это операторные скобки, которые позволяют объединять несколько операторов в один составной. Например, синтаксис while в паскале такой: while <условие> do <оператор>. Синтаксис не требует ни begin-end, ни даже точек с запятой. Конечно, ограничение на единственный оператор после do заставляет часто использовать там использовать операторные скобки, но это не синтаксис.
0
Просто Лис
Эксперт Python
4232 / 2643 / 909
Регистрация: 17.05.2012
Сообщений: 7,896
Записей в блоге: 9
27.06.2020, 13:11 9
Мне интересно, что скажет ТС, когда увидит lua или bash:

Lua
1
2
3
4
5
6
7
function factorial(n)
  if n == 0 then
    return 1
  else
    return n * factorial(n - 1)
  end
end
Bash
1
2
3
4
5
6
7
8
9
10
11
12
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
 
ffmpeg_resize600() {
  ffmpeg -hide_banner -i "$1" -filter:v scale=-1:600 "$1_600.mp4"
  alert
}
1
4048 / 2626 / 371
Регистрация: 01.06.2013
Сообщений: 5,599
Записей в блоге: 9
27.06.2020, 13:20 10
Цитата Сообщение от helter Посмотреть сообщение
но это не синтаксис.
А что же это?
Выделение блока из нескольких операторов {} - особенность синтаксиса.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
что скажет ТС, когда увидит lua или bash:
ТС попросил сгруппировать языки по предложенным им трём группам. А вообще, синтаксисов много. Есть ML-овский (haskell,ocaml,F#), есть прологовский (prolog, erlang), есть рабёвый (рабийный?) - ruby,exlixir и т.д.
1
4297 / 3296 / 339
Регистрация: 12.03.2013
Сообщений: 5,805
27.06.2020, 13:30 11
Цитата Сообщение от Curry Посмотреть сообщение
А что же это?
Выделение блока из нескольких операторов {} - особенность синтаксиса.
Да, но я как-то подумал, что ТС под блоком имеет в виду, скажем, оператор while целиком. Потому что иначе что такое "блок" и "[параметры]" в его записи?

Короче говоря, я о том, что while и begin-end ортогональны.
0
3250 / 2313 / 421
Регистрация: 28.04.2012
Сообщений: 7,706
28.06.2020, 08:58 12
К какой группе отнести Ocaml?

F#
1
2
3
4
5
6
7
8
9
10
11
12
let foo () = print_endline "foo"
let bar () = print_endline "bar"
 
let () =
  begin
    foo () ;
    bar ()
  end ;
  ( foo () ;
    bar () ) ;
  foo () ;
  bar ()
0
4048 / 2626 / 371
Регистрация: 01.06.2013
Сообщений: 5,599
Записей в блоге: 9
28.06.2020, 09:18 13
Цитата Сообщение от korvin_ Посмотреть сообщение
К какой группе отнести Ocaml?
Ну, каких то официальных групп нет. Но можно отнести к ML-овской группе.
Несмотря на то, что вы в примере вводите общественность в заблуждение будто в Ocaml аргументы функции нужно заключать в скобки.
0
3250 / 2313 / 421
Регистрация: 28.04.2012
Сообщений: 7,706
28.06.2020, 09:34 14
Цитата Сообщение от Curry Посмотреть сообщение
Несмотря на то, что вы в примере вводите общественность в заблуждение будто в Ocaml аргументы функции нужно заключать в скобки.
1) это не я ввожу
2) у меня там и print_endline ... есть без скобок
0
4048 / 2626 / 371
Регистрация: 01.06.2013
Сообщений: 5,599
Записей в блоге: 9
28.06.2020, 09:55 15
Цитата Сообщение от korvin_ Посмотреть сообщение
это не я ввожу
а кто?
Цитата Сообщение от korvin_ Посмотреть сообщение
у меня там и print_endline ... есть без скобок
видимо "коварный план" включает наведение читающего на мысль что ввод вывод выполняется не функциями, а встроен в язык, как в фортране (ещё синтаксис) или бейсике (ещё пример нескольких синтаксисов в зависимости от варианта бейсика).
)

Добавлено через 6 минут
Подсыплю жути.
Ещё синтаксис, но лучше не смотреть, особенно на ночь
Код
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY 'Hellow world!'.
STOP RUN.
0
3250 / 2313 / 421
Регистрация: 28.04.2012
Сообщений: 7,706
28.06.2020, 11:21 16
Цитата Сообщение от Curry Посмотреть сообщение
а кто?
Ocaml же. Он не ленивый, чтобы определить foo как foo :: IO () и потом использовать просто как do { foo ; bar }, соответственно, обязательно нужно передать какой-то аргумент, вот и передают в таких случаях () типа unit. Типичная ситуация в Ocaml'е.

Цитата Сообщение от Curry Посмотреть сообщение
видимо "коварный план" включает наведение читающего на мысль что ввод вывод выполняется не функциями, а встроен в язык, как в фортране (ещё синтаксис)
Откуда такой странный вывод?
0
4048 / 2626 / 371
Регистрация: 01.06.2013
Сообщений: 5,599
Записей в блоге: 9
28.06.2020, 11:28 17
Цитата Сообщение от korvin_ Посмотреть сообщение
Откуда такой странный вывод?
Мне так кажется. )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2020, 11:28

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

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

4 и 5 поколения языков программирования
Где можно найти информацию о названии темы. 3 страницы гугла с вышеприведенным тезисом изучено....

Сколько языков программирования в кс 1.6 ?
Сколько языков программирования было использовано для создания игры кс 1.6 ? больше трёх ?

Сравнение Языков Программирования
Доброго времени суток, Уважаемые Форумчане! Я учусь в БГУИР (Минск) на факультете непрерывного и...

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

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


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

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

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