The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов GCC 13, opennews (??), 26-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


48. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от xsignal (ok), 26-Апр-23, 20:54 
Паскаль - отличный язык. По сути, это тот же Си, только с более понятным новичкам синтаксисом - типа, begin/end вместо фигурных скобок. Я когда-то с Паскаля без особых усилий на Си перешёл - там всё точно так же, только запись короче)
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

66. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от _kp (ok), 26-Апр-23, 21:49 
Ну да, с удобным ср@чем из всех всех всех переменных функции в её начале.
По мне, так подобные анахронизмы даже хуже чем излишняя многословность, ибо плодит трудно обнаружимые ошибки использования переменных.

Не знаю как сейчас, но когда то в Делфи были коварные проблемы с многопоточным кодом на многоядерных процессорах, что у нас и стало одним из гвоздей в крышку его гроба.
Может быть, сейчас и исправили, не знаю, но поезд ушёл.

А из хорошего помню, по сравнению с Си, более удобная проверка типов, простые var параметры функций, оператор with.
По сравнению с C++, был существенно ПРОЩЕ для НАЧАЛЬНОГО обучения программирования, то есть как одного из первых языков.

Ответить | Правка | Наверх | Cообщить модератору

84. "Релиз набора компиляторов GCC 13"  +/
Сообщение от AKTEON (?), 26-Апр-23, 22:19 
>Ну да, с удобным ср@чем из всех всех всех переменных функции в её начале.

1)Однопроходный компилятор - наше все.
2) А как чудно решается эта проблема в фортране ...

Ответить | Правка | Наверх | Cообщить модератору

110. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от _kp (ok), 27-Апр-23, 01:15 
Переменные в начале логического блока тоже перевариваются однопроходным компилятором, и практически без усложнения компилятора.

Это просто древний архаизм, который по недосмотру и стечению обстоятельств не исправили вовремя.

Сейчас в embarcadero это и подобные деревянности исправлены, но уже не актуально.

Ответить | Правка | Наверх | Cообщить модератору

161. "Релиз набора компиляторов GCC 13"  +/
Сообщение от n00by (ok), 27-Апр-23, 12:01 
>>Ну да, с удобным ср@чем из всех всех всех переменных функции в её начале.
> 1)Однопроходный компилятор - наше все.

В любом случае переменная объявляется до использования.

Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

180. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (180), 27-Апр-23, 14:00 
Вам изобрели компьютеры чтобы не быть ограниченными одним проходом - нет, хотят г-но жрать.
Ответить | Правка | К родителю #84 | Наверх | Cообщить модератору

135. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (134), 27-Апр-23, 08:57 
> плодит трудно обнаружимые ошибки использования переменных

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

Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

152. "Релиз набора компиляторов GCC 13"  +/
Сообщение от _kp (ok), 27-Апр-23, 10:34 
>> плодит трудно обнаружимые ошибки использования переменных
> Наоборот уменьшает. И все знают где в тексте статически определены все переменные.

Знают, что определены где то там, вдалеке, но не где используются.
А вот их использование, и особенно неправильное, очень плохо обнаружимо, в чём и проблема. И компилятор тут и пол-warning'a не выдаст.

А вобще, это "дурной стиль" ;)

Ответить | Правка | Наверх | Cообщить модератору

251. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 28-Апр-23, 00:22 
> Наоборот уменьшает. И все знают где в тексте статически определены все переменные.

С другой стороны, переменные для циклов типа for (uint8_t i = 0; i < 10; i++) и элегантно и прозрачно хинтит оптимизеру область использования переменной, и позволяет не захламлять сюжетно важный блок с описанием переменных aux сущностями нужными на 1 этот цикл и более - нигде.


Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

91. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (-), 26-Апр-23, 22:42 
> Паскаль - отличный язык. По сути, это тот же Си, только с
> более понятным новичкам синтаксисом -

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

> типа, begin/end вместо фигурных скобок.

И всего в 3 и 5 раз больше букв набирать для одного результата. И не надо про автокомплит, он с 1 буквы или не сработает или будет дико глюкать, разве что хоткеи какие но визуальное загромождение и раздувание файлов никуда не денется. А в большом проекта даже и чтение файлов и их парсинг может стать аргументом.

> Я когда-то с Паскаля без особых усилий на Си перешёл - там
> всё точно так же, только запись короче)

Ну да. И не пытается постоянно охранять от прострела пяток. По поводу чего код быстрее и эффективнее и можно сделать что задумал а не бороться с компилером. Но это как с мощным инструментом - при криворукости и глупости можно покалечиться.

Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

114. "Релиз набора компиляторов GCC 13"  –4 +/
Сообщение от DEF (?), 27-Апр-23, 02:56 
Днищенский язык. Вы только вдумайтесь, в Паскале длина массива и интервал индексов - это составные части типа. Невозможно в одну функцию или процедуру передавать массивы разной длины, так как они имеют разные типы.

type vector1 = array [1..25] of real;
type vector2 = array [2..26] of real;

var
  vec1: vector1;
  vec2: vector2;

Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору

117. "Релиз набора компиляторов GCC 13"  +2 +/
Сообщение от Аноним (64), 27-Апр-23, 03:58 
> Днищенский язык. Вы только вдумайтесь, в Паскале длина массива и интервал индексов - это составные части типа

Это отличная вещь под названием строгая типизация. Ты еще Аду не видел.

Проблема в том, что ты привык к убогим языкам.

> Невозможно в одну функцию или процедуру передавать массивы разной длины, так как они имеют разные типы.

Ну вообще-то можно:

https://www.freepascal.org/docs-html/ref/refsu68.html

Ответить | Правка | Наверх | Cообщить модератору

181. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (180), 27-Апр-23, 14:07 
> Днищенский язык. Вы только вдумайтесь, в Паскале длина массива и интервал индексов - это составные части типа. Невозможно в одну функцию или процедуру передавать массивы разной длины, так как они имеют разные типы.

А где нет? А C++, например, `array<T, 10>` и `array<T, 11>` тоже разные типы. В паскале есть и динамические массивы - `array of real`. Днищенский он совсем не поэтому.

Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

235. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (228), 27-Апр-23, 22:59 
Убогие какие-то функции получаются. И всё из-за одного формального параметра размера массива?
поэтому удобно передать информацию: указатель на массив определенных элементов и количество элементов. Для меня это естественно.  
Не забывайте Си разрабатывался как язык для написания операционной системы.
Ответить | Правка | Наверх | Cообщить модератору

253. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 28-Апр-23, 00:26 
Да даже на си так можно. Если нужно.

typedef struct array10_t { arr[10] };

vs

typedef struct array11_t { uint8_t arr[11] };

И далее вы это by value или by pointer уже не сможете перепутать. Что так то хорошо - спасет от случая когда вы 11-й элемент в массиве на 10 дереференсить пытались. Не то чтоб это совсем не получится, но это будет минимум баг, максимум вулн.

Ответить | Правка | К родителю #181 | Наверх | Cообщить модератору

255. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 28-Апр-23, 00:28 
Упс, название типа потеряно. Примерно так: typedef struct array10_t { arr[10] } array10_t;
Ответить | Правка | Наверх | Cообщить модератору

192. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от InuYasha (??), 27-Апр-23, 15:08 
Там точно не ":=" ? А днищенство языка там начинается с 1. Потому что.
Ответить | Правка | К родителю #114 | Наверх | Cообщить модератору

210. "Релиз набора компиляторов GCC 13"  –1 +/
Сообщение от Аноним (210), 27-Апр-23, 16:57 
Все нормальные люди считают с 1, в нормальных языках типа Фортрана, Паскаля тоже с 1, в Ада - используются range, в математике нумерация с 1.
И только отбитые сишники решили, что делать индексом сдвиг указателя на голову массива это офигенная идея. К сожалению этого овнокод победил, и остальные начали делать также.
Ответить | Правка | Наверх | Cообщить модератору

212. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Пользователь чебурнетаemail (?), 27-Апр-23, 17:08 
> Все нормальные люди считают с 1, в нормальных языках типа Фортрана, Паскаля
> тоже с 1, в Ада - используются range, в математике нумерация
> с 1.

Ни один истинный шотландец...

Ответить | Правка | Наверх | Cообщить модератору

215. "Релиз набора компиляторов GCC 13"  +1 +/
Сообщение от InuYasha (??), 27-Апр-23, 17:48 
А вы по утрам не приходите в канцтовары покричать на линейки и рулетки? )
Вот, такие же "нормальные" люди, наверно, изобретают лифты с кнопками "4 3 2 1 -1 -2" )
Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

234. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (228), 27-Апр-23, 22:47 
Докажите, что для написания ОС такая нумерация было бы лучше?
Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

294. "Релиз набора компиляторов GCC 13"  +/
Сообщение от Аноним (-), 28-Апр-23, 16:23 
> в математике нумерация с 1.

Нет, в математике нумерация оттуда, откуда удобно. Твоё математическое образование видимо упустило такую тему матана как ряды, где используется исключительно нумерация с нуля, потому что индекс 0 очень удобно порождает показатель степени 0, который даёт нам член ряда без x (c x в нулевой степени). Без него пришлось бы писать конструкции типа x^{i-1}, что увеличивает количество писанины.

Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру