| 
		
		
		
	
		
		
	
		
		
			| FreeBASIC без долларов и цифр |  | 
				
			 |  | 
					| zamabuvaraeu | Дата: Суббота, 25.10.2025, 14:38 | Сообщение # 1 |  | Полковник Группа: Друзья Сообщений: 173 Статус: Offline | Это моя собственная сборка фрибесика. 
 Оригинальный фрибесик добавляет доллары к именам переменных и переводит их в верхний регистр. Например, объявляем переменную:
 
 
 Код Dim x As Integer = 265
Во внутреннем представлении «x» превращается в «X$1». Меня это раздражает:
 
 * отладчике GDB нужно писать переменные как они объявлены во внутреннем представлении, с долларами и цифрами
 * нельзя сделать так, чтобы при наведении мыши на переменную в Visual Studio Code показывалось её содержимое во всплывающей подсказке
 
 Я модифицировал кодогенератор фрибесика:
 
 * имена переменных остаются в том же регистре как объявлены
 * у переменных больше нет долларов и цифр
 
 Побочный эффект: FreeBASIC стал регистрозависимым. Теперь переменные «Count» и «cOUNT» — это разные переменные. То же самое произошло относится к функциям: если функция объявлена как CreateWindowEx, то и вызывать её нужно CreateWindowEx, но никак не CREATEWINDOWEX или createwindowex.
 
 (Вообще странно, что программисты допускают смешивание регистра и пишут переменные variable не так, как они объявлены изначально VARIABLE; даже если язык это позволяет — это всё равно дурной тон.)
 
 Эти изменения нужны для удобства отладки. Ничего нового в язык они не приносют.
 
 Собрать собственный компилятор оказалось довольно просто, достаточно сделать Пуск → Выполнить:
 
 
 Код fbc -m fbc -x fbc.exe *.bas
Пакетный файл для сборки:
 https://github.com/zamabuvaraeu/fbc/blob/master/compile.cmd
 
 Модифицированный фрибесик:
 https://github.com/zamabuvaraeu/fbc/
 |  |  |  |  |  | 
					| DarkDemon | Дата: Суббота, 25.10.2025, 23:47 | Сообщение # 2 |  | Генерал-майор Группа: Друзья Сообщений: 261 Статус: Offline | Цитата  Побочный эффект: FreeBASIC стал регистрозависимым.Жесть...
 
 Добавлено (26.10.2025, 00:03)
 ---------------------------------------------
 
 Цитата zamabuvaraeu (  )  как они объявлены изначально VARIABLE; даже если язык это позволяет — это всё равно дурной тон.Это не дурной тон, это особенность. Дурным тоном можно назвать создание в программе 2 переменных,
 различающихся одной буквой регистра, например:
 Status
 status
 
 Вот тут, особенно если куски кода рядом, можно очень много головняка поймать.
 И тем не менее я поддерживаю то, что переменные лучше делать регистрозависимыми. А вот функции\процедуры - нет.
 И ещё я поддерживаю скан переменных на совпадение т.е. не допускать вышеизложенного случая.
 
 Объясню почему, старый QuickBasic имел IDE которая это всё исправляет сама и на лету, пишешь x, потом пишешь X
 и все x в программе мгновенно переводятся на X, это делало исходник нормально читаемым, FB такой возможности не даёт.
 А ещё он поднимал операторы языка в верхний регистр(не функции пользователя, а именно операторы) что было
 невероятно прекрасно.
 
 Добавлено (26.10.2025, 00:22)
 ---------------------------------------------
 Регистрозависимость переменных могла бы поднять уровень внимательности и педантичности к именам переменных.
 И одновременно сделать исходники дерьмом, если человек начнёт по каждому чиху заводить одинаково "звучащие"
 переменные в количестве овер дофига. А ещё могут найтись те, кто СпЕцИаЛьНо дЕлАеТ вОт ТаК, и по 10 копий
 переменных, пойди прочитай тогда такой код))). Ну и допустим уже другой класс ошибок, когда заведено 2 переменные,
 X и x и прогер случайно ткнул одну вместо другой, в основном эти ошибки были бы на однобуквенных и не связаны с
 привычкой к классическому BASIC сценарию.
 Лично я всегда копирую все переменные через CTRL-C, CTRL-V с деклараций и совпадений у меня - нет.
 Очень редко набираю руками, сильно проверяя. Поэтому мне в принципе пофиг, как оно регистрозависимо или нет.
 В исходнике всегда читается нормально.
 
 
 Сообщение отредактировал DarkDemon - Воскресенье, 26.10.2025, 00:25 |  |  |  |  |  | 
					| zamabuvaraeu | Дата: Воскресенье, 26.10.2025, 03:37 | Сообщение # 3 |  | Полковник Группа: Друзья Сообщений: 173 Статус: Offline | Например, в си‐мире может встречаться такая конструкция: 
 В си‐мире как‐то справляются с этой задачей, и ничего: язык очень популярен.Код HDC hDC hDc Hdc hdC HDc HdC;
Когда не умеют придумывать названия переменным — берут название типа в другом регистре.
 
 
 Потому что это не задача языка программирования. И это не задача компилятора.Цитата  старый QuickBasic имел IDE которая это всё исправляет сама и на лету, пишешь x, потом пишешь Xи все x в программе мгновенно переводятся на X, это делало исходник нормально читаемым, FB такой возможности не даёт.
Это задача текстового редактора. Можно написать свой (или взять готовый и настроить) где переменные будут приводиться в нужный регистр.
 
 
 А если объявление очень далеко от этого места или в другом файле? Постоянно переключаться? Это удобно?Цитата  Лично я всегда копирую все переменные через CTRL-C, CTRL-V с деклараций
 Обычно поступают так: пишут слово, студия предлагает выпадающий список, программист выбирает что нужно и щёлкает Enter (или жмёт TAB, или давит пробел). И студия вставляет название переменной так, как она была объявлена, в изначальном регистре. Даже Notepad++ умеет в выпадающий список, только в студиях там это всё гораздо мощнее сделано.
 |  |  |  |  |  | 
					| haav | Дата: Воскресенье, 26.10.2025, 08:42 | Сообщение # 4 |  |  Генералиссимус Группа: Администраторы Сообщений: 1436 Статус: Offline | Цитата  у переменных больше нет долларов и цифр
 Смотреть на все эти закорючки в именах файлов в отладчике - так себе удовольствие.
 
 Хороший проект для тех кто любит отлаживать при помощи GDB.
 
 Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 |  |  |  |  |  | 
					| DarkDemon | Дата: Воскресенье, 26.10.2025, 09:09 | Сообщение # 5 |  | Генерал-майор Группа: Друзья Сообщений: 261 Статус: Offline | Цитата zamabuvaraeu (  )  Обычно поступают так: пишут слово, студия предлагает выпадающий список, программист выбирает что нужно и щёлкает Enter (или жмёт TAB, или давит пробел). И студия вставляет название переменной так, как она была объявлена, в изначальном регистре. Даже Notepad++ умеет в выпадающий список, только в студиях там это всё гораздо мощнее сделано.Использую FBEdit и ещё несколько компиляторов(старые версии) у меня завязаны на IUP_FB_EDITOR.
 Мне просто так удобно, я вижу визуал IUP_FB_EDITOR-а и сразу понимаю что это компилирую на старых.
 И то для меня даже FBEit слишком наворочен и перегружен. О переезде на другие пока не думал.
 Будь нормальный выпадающий список - думаю я был бы счастлив. У текущих IDE в выпадающих
 списках(в основном UDT) есть один серьёзный недостаток, который сводит их юзабилити для меня на нет,
 они пихают мне все в нижнем регистре, поэтому мне проще написать тип переменной руками, чем выбирать
 из списка, потом выделять и нажимать CTRL+U, это просто дольше делать.
 Сейчас делаю проще - ставлю закладку на объявления(они у меня всегда в одном месте - в начале программы)
 и закладку на текущее место, телепорт делается мгновенно, хотя и немного не в то место, хреново у старых
 IDE  с этим. Но ничего, со временем будет своя, там такого дерьма не будет.
 |  |  |  |  |  | 
					| haav | Дата: Воскресенье, 26.10.2025, 10:00 | Сообщение # 6 |  |  Генералиссимус Группа: Администраторы Сообщений: 1436 Статус: Offline | Цитата DarkDemon (  )  У текущих IDE в выпадающихсписках(в основном UDT) есть один серьёзный недостаток, который сводит их юзабилити для меня на нет,они пихают мне все в нижнем регистре, поэтому мне проще написать тип переменной руками, чем выбирать
 из списка, потом выделять и нажимать CTRL+U, это просто дольше делать.
 Я уже не помню как в Fbedit , но в моем редакторе UDT дополняются в том регистре , который записан при объявлении. А вот встроенные типы (Long , String) подчиняются настройкам. В настройках есть выбор регистра для ключевых слов: верхний , нижний , смешанный , не менять.
 
 Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 |  |  |  |  |  | 
					| DarkDemon | Дата: Воскресенье, 26.10.2025, 10:49 | Сообщение # 7 |  | Генерал-майор Группа: Друзья Сообщений: 261 Статус: Offline | Цитата haav (  )  В настройках есть выбор регистра для ключевых слов: верхний , нижний , смешанный , не менять.Уже не помню почему оставил настройку "не менять". Что-то меня смутило. Надо будет ещё раз проверить.
 |  |  |  |  |  
 |