Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
#1

Регистрозависимый vs регистронезависимый - Программирование

03.11.2017, 15:29. Просмотров 387. Ответов 27
Метки нет (Все метки)

Добрый день, скажите свое мнение, плииииз!

Пишу свой простой процедурный язык (транслятор), для встраивания в другие программы. Пишу "с нуля", поэтому могу нарушать любые "стандарты".

Не по теме:

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



Что Вы думатее над жесткими ограничениями в регистре букв???

Были ли у Вас случаи когда в регистроЗАвисимом языке использовали две переменных или функции в разном регистре?
что-то вроде:
Java
1
2
3
int aBc=123;
int Abc=321;
int abC=432;
Может в чужих кодах с подобным сталкивались?

Не по теме:

p.s. знаю несколько языков по "обе стороны ответа" и меня "зависимость" всегда лишь раздражала... (может потому что первый язык бейсик, а второй паскаль). Решил узнать, может кому-нибудь она наоборот - упростила работу!

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2017, 15:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Регистрозависимый vs регистронезависимый (Программирование):

Регистрозависимый быстрый поиск во вьюхе - Lotus
Коллеги никто не сталкивался, сейчас у меня во всех вьюшках БД быстрый поиск зависит от регистра, хотя флаги Case sensitive в колонках не...

Регистронезависимый поиск - PHP
Сделал поиск, написал элементарную регулярку. Регистр все равно учитывается. в пришедшей строке могут быть любого регистра символы, в str...

Регистронезависимый поиск - MySQL
привет всем, купил я скрипт oxyclassifieds 7.08 Столкнулся с такой проблемой. При поиске регистр чувствителен. Вопрос как...

Говорят что пых регистрозависимый язык - PHP
а это тогда что: class TESt { public function geG() { echo 'И после этого пых - регистрозависимый язык?'; } ...

Выполнить регистронезависимый поиск - Turbo Pascal
как выполнять поиск в файле, чтобы не было зависимости от регистра введенных символов? а то вводишь паскаль, а Паскаль уже не находит... ...

Регистронезависимый поиск LOWER UPPER - Firebird/InterBase
Ребята здравствуйте ... У Interbase 6.5 LOWER как работает ? Только UPPER Работает да select * from employees where...

27
korvin_
1974 / 1459 / 228
Регистрация: 28.04.2012
Сообщений: 5,229
03.11.2017, 20:39 #2
Цитата Сообщение от andyj Посмотреть сообщение
Регистрозависимый vs регистронезависимый
Регистрозависимый.

Цитата Сообщение от andyj Посмотреть сообщение
Были ли у Вас случаи когда в регистроЗАвисимом языке использовали две переменных или функции в разном регистре? Может в чужих кодах с подобным сталкивались?
Нет, зато я видел кучу (говно)кода на регисторнезависимых языках, где всё в кашу: одна и та же переменная/функция/ключевое-слово используется в разных регистрах. Читать такой код крайне неприятно, а приводить в порядок — долго и муторно.

Цитата Сообщение от andyj Посмотреть сообщение
Решил узнать, может кому-нибудь она наоборот - упростила работу!
Она практически всем упрощает работу.
4
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
03.11.2017, 21:40  [ТС] #3
Цитата Сообщение от korvin_ Посмотреть сообщение
Нет, зато я видел кучу (говно)кода на регисторнезависимых языках, где всё в кашу: одна и та же переменная/функция/ключевое-слово используется в разных регистрах. Читать такой код крайне неприятно, а приводить в порядок — долго и муторно.
Тоесть проблема лишь в "проблеме читабельности чужого кода"??? в "правильности оформления"?
Это можно решить "предупреждением/запретом редактора/IDE" или авто-исправлением... (типа Sonar в Java)

ИМХО, иногда надо БЫСТРО запустить код не глядя на мелкие опечатки. когда getStatus == getSTatus...

но вопрос стоял не так! были ли у Вас (или в чужом коде) случаи когда вы использовали одно и то-же слово(переменная, функция, метод, имя класса) в разных регистрах для разных применений? Вопрос не в оформлении, а в реальном применении! как в примере:
Java
1
2
3
int aBc=123;
int abC=321;
int ABc=aBc+abC;
p.s. я не претендую на язык уровня Java! (мегабайты кода и тысячи классов в одном проекте). Мои скрипты будут слишком короткими!!! Иногда в 1-3 строки. "Читабельность" не самый важный пункт. А вот "низкий порог входа" в язык - обязателен!

p.s.s. я пишу "совсем с нуля" и поэтому могу создать даже "частичную зависимость"... хоть для переменных не важно, а для методов - важно... хоть "регистрозависим для первых 4 символов"...

...Может стоит голосование устроить??? я работал минимум в 10 языках где на регистр не обращали внимание... отсюда и сомнения...
0
korvin_
1974 / 1459 / 228
Регистрация: 28.04.2012
Сообщений: 5,229
03.11.2017, 21:56 #4
Цитата Сообщение от andyj Посмотреть сообщение
но вопрос стоял не так! были ли у Вас (или в чужом коде) случаи когда вы использовали одно и то-же слово(переменная, функция, метод, имя класса) в разных регистрах для разных применений?
Глазки протри… =)
Цитата Сообщение от korvin_ Посмотреть сообщение
Нет
Цитата Сообщение от andyj Посмотреть сообщение
я работал минимум в 10 языках где на регистр не обращали внимание...
Молодец какой. Что за языки? Pascal, Basic, FoxPro, SQL и …?
0
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
03.11.2017, 22:52  [ТС] #5
Цитата Сообщение от korvin_ Посмотреть сообщение
Pascal, Basic, FoxPro, SQL и …
1С(3 абсолютно не похожих версии языка), PostgreSQL(встроенные функции - это целый язык), DOS, Bash, (вроде) асемблер, FoxPro(2 версии - давно было, но помню что сильно переучивался) и еще несколько "встроенных" в разные утилиты (сейчас не вспомню, но штуки 3-4 будет - вроде AutoHotKey)...

...мне по сути тоже для "встраивания" и "мелкой автоматизации", поэтому и "провожу аналогии"!

Цитата Сообщение от korvin_ Посмотреть сообщение
Глазки протри… =)
Нет
сорри! не заметил 3 буквы на фоне кучи слов о "почему не стоит использовать регистронезависимость"... =)

Добавлено через 2 минуты
вот еще нагуглил:
https://ru.wikipedia.org/wiki/%D0%A7...BB%D0%BE%D0%B2
0
Tklwegsd
Эксперт 1С
651 / 464 / 152
Регистрация: 24.07.2013
Сообщений: 1,609
03.11.2017, 22:57 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от andyj Посмотреть сообщение
А вот "низкий порог входа" в язык - обязателен!
Думаю, для низкого порога входа лучше использовать регистронезависимость, т.к. это позволит сосредоточиться на семантике, а не синтаксисе.
Вообщем случае, я за регистрозависимость.
1
korvin_
1974 / 1459 / 228
Регистрация: 28.04.2012
Сообщений: 5,229
03.11.2017, 23:28 #7
Цитата Сообщение от andyj Посмотреть сообщение
PostgreSQL(встроенные функции - это целый язык)
Не согласен.

Цитата Сообщение от andyj Посмотреть сообщение
DOS
Мёртв.

Цитата Сообщение от andyj Посмотреть сообщение
(вроде) асемблер
Мало кто что-то пишет на ассемблере, тем более «для "встраивания" и "мелкой автоматизации"».

Цитата Сообщение от andyj Посмотреть сообщение
FoxPro
Мёртв.

Цитата Сообщение от andyj Посмотреть сообщение
Bash
- bash регистрозависимый.

Цитата Сообщение от andyj Посмотреть сообщение
...мне по сути тоже для "встраивания" и "мелкой автоматизации", поэтому и "провожу аналогии"!
python, ruby, lua — всё регистрозависимое.
0
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
04.11.2017, 01:05  [ТС] #8
Цитата Сообщение от korvin_ Посмотреть сообщение
Не согласен.
С чем именно? что "целый язык"? я лично на нем пол года программы писал! на профессии "Database engineer"! Представь себе функцию в 2-4 экрана кода. Которая генерирует сложные запросы с кучей условией, динамической генерацией строки запроса, подключением соседних функций, подключением внешних модулей расширения, механизмами сложной синхронизации с соседними серверами... А представь себе 50-100 подобных функций в одном проекте для генерации отчетов по 15-100гигабайтной базе...

Цитата Сообщение от korvin_ Посмотреть сообщение
DOS
Мёртв.
Расскажи это сотням батников, которыми я до сих пор успешно пользуюсь! От "чистки папки проекта от мусора" или сложного резервного копирования, до генерации SSH ключей для линукс сервера или заготовок по Git.

Не по теме:

p.s. не советую пользоваться словом "мёртв" в отношении языков!!! Режет слух! Даже "мертвая ADA" я слышал все еще используется в NASA и в военных ракетах/спутниках США. Что уж говорить о "мертвом Делфи", на котором еще лет 20-30 будут программы "умирать" на крупных предприятиях, где проще "допилить модуль" чем перевести весь своеобразный и "отполированный годами" документооборот на современные языки... Да и звучит это как-то... по студенчески! Типа "скоро все забудут про Java и C++, т.к. язык GO их всех вытеснит"...



Цитата Сообщение от korvin_ Посмотреть сообщение
- bash регистрозависимый.
проверил в винде! echo==ECHO (глубже не тестил)

Цитата Сообщение от korvin_ Посмотреть сообщение
python, ruby
Про Луа не в курсе, но python и ruby тяжело назвать "встраиваемыми".
Сейчас благодаря моему языку моя утилита вырастает с 800кб до 1100кб... питон и руби так точно не смогут... =)

Добавлено через 46 минут

Не по теме:

Цитата Сообщение от korvin_ Посмотреть сообщение
я работал минимум в 10 языках где на регистр не обращали внимание...
Молодец какой. Что за языки? Pascal, Basic, FoxPro, SQL и …?
Цитата Сообщение от korvin_ Посмотреть сообщение
Мало кто что-то пишет на ассемблере, тем более «для "встраивания" и "мелкой автоматизации"».
а я и не говорил что он "для встраивания". Просто привел список регистронезависимых языков на которых лично пришлось когда-то поработать.

Давно не работал, но кажется еще в фотошопе и/или кореле был свой макро-язык. А так-же в КАД-ах (вроде лисп).
А так-же в некоторых сетевых 3Д игрушках ботов можно "дописывать" прямо во встроенном редакторе скриптов.

0
korvin_
1974 / 1459 / 228
Регистрация: 28.04.2012
Сообщений: 5,229
04.11.2017, 01:16 #9
Цитата Сообщение от andyj Посмотреть сообщение
С чем именно? что "целый язык"?
Да. Так любую библиотеку на любом языке можно назвать отдельным языком.

Цитата Сообщение от andyj Посмотреть сообщение
Расскажи это сотням батников, которыми я до сих пор успешно пользуюсь!
При чём тут батники? Они к DOS'у никакого отношения уже не имеют.

Цитата Сообщение от andyj Посмотреть сообщение
p.s. не советую пользоваться словом "мёртв" в отношении языков!
Свои советы можешь оставить при себе.

Цитата Сообщение от andyj Посмотреть сообщение
Даже "мертвая ADA" я слышал все еще используется в NASA и в военных ракетах/спутниках США. Что уж говорить о "мертвом Делфи", на котором еще лет 20-30 будут программы "умирать" на крупных предприятиях, где проще "допилить модуль" чем перевести весь своеобразный и "отполированный годами" документооборот на современные языки... Да и звучит это как-то... по студенчески! Типа "скоро все забудут про Java и C++, т.к. язык GO их всех вытеснит"...
Сколько бреда… Есть статистика использования для новых проектов, а legacy, оно будет всегда, да, и что с того? На лошадях и сейчас можно покататься, но до Нью-Йорка из Москвы не доедешь.

Цитата Сообщение от andyj Посмотреть сообщение
Про Луа не в курсе, но python и ruby тяжело назвать "встраиваемыми".
Ты хоть читай фразы, которые я коментирую.

Цитата Сообщение от andyj Посмотреть сообщение
Сейчас благодаря моему языку моя утилита вырастает с 800кб до 1100кб..
Т.е. твой язык потребовал больше кода? Так это деградация, сударь.
0
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
04.11.2017, 03:46  [ТС] #10

Не по теме:

Цитата Сообщение от korvin_ Посмотреть сообщение
Да. Так любую библиотеку на любом языке можно назвать отдельным языком.
Вы не поняли! Это полноценный (пусть и ограниченный/слабый) язык! Полноценный набор КОМАНД для работы со строками, с базой (вместо файловых операций), с сетевым подключением к другим SQL-серверам, с аррей и сложными типами... короче долго перечислять! Факт: я брал десяток параметров функции, прогонял их по условиям, получал промежуточные выборки из базы, изучал выборки, преобразовывал, и на их анализе составлял SQL запрос (строкой) для выполнения совсем в другой базе данных... чистый код занимал 1-4 экрана кода. Моя функция могла использовать (для упрощения) результат работы других моих функций (части запроса для результата или готовые сложные промежуточные таблицы). Кстати такая функция могла создавать/удалять/замещать/править другие функции... а это уже основы метапрограммирования... Можно расширять функционал языка "плагинами" на С++. (чем-то напоминает PHP)

Цитата Сообщение от korvin_ Посмотреть сообщение
При чём тут батники? Они к DOS'у никакого отношения уже не имеют.
Возможно мы говорим разными терминами... я имел в виду батники в Дос/Вин-командной строке. Просто считал их "составной частью" ДОСа еще со времен когда дос был набором из 3х системных файлов на свеже-отформатированной дискете. и когда говорил о "языке ДОСА" я имел в виду не ОС, а встроенный аналог баша для написания скриптов автоматизации (который почти не изменился со времен ДОСа - консольные цвета, строковые операции, работа с датой, с командной стркой, разбивка пути, чтение/запись тектовых файлов).

Цитата Сообщение от korvin_ Посмотреть сообщение
Свои советы можешь оставить при себе.
На оскорбления переходишь??? Это форум (а не частная переписка)!!! Он создан чтобы раздавать советы и делится мнением...

Цитата Сообщение от korvin_ Посмотреть сообщение
Сколько бреда… Есть статистика использования для новых проектов, а legacy, оно будет всегда, да, и что с того? На лошадях и сейчас можно покататься, но до Нью-Йорка из Москвы не доедешь.
Вообще-то речь шла об "давно мертвых языках"... которые еще вполне живые, активно используются, имеют свое маленькое но живое сообщество и даже пользуются спросом в определенных кругах т.к. "фиг сейчас найдешь по нему специалиста - все в Java/pyton/ruby уползли".
p.s. и "на лошадях" можно, если заказчит такое ТЗ поставил и финансирование приличное...

Цитата Сообщение от korvin_ Посмотреть сообщение
...мне по сути тоже для "встраивания" и "мелкой автоматизации", поэтому и "провожу аналогии"!
python, ruby, lua — всё регистрозависимое.
Цитата Сообщение от korvin_ Посмотреть сообщение
Про Луа не в курсе, но python и ruby тяжело назвать "встраиваемыми".
Ты хоть читай фразы, которые я коментирую.
Ну и? ответ на "встраиваемые"? или "мелкой автоматизации"?

Цитата Сообщение от korvin_ Посмотреть сообщение
Т.е. твой язык потребовал больше кода? Так это деградация, сударь.
Деградация? Есть код утилиты на freepascal (тестовый пример) делающий бинарник (очень важен был размер конечного *.exe). Есть мой язык написанный на Лазарус(прототип). Встраиваю в утилиту юниты языка и... получаю увеличение размера бинарника утилиты на 300кб! деградация? Теперь моя утилита может читать(или создавать) пакеты с кодом лежащие рядом и менять ход работы утилиты в зависимости от кода в них. В "язык" встроен и редактор кода (самописный - стандартные не подходят).
На сколько бы увеличилась бы утилита, если бы я в нее встраивал Pyton или Ruby??? и сколько бы я учил человека "умеющего включать и выключать компьютер" написанию/правки простых скриптов на этом встроенном языке?

p.s. мой язык (90% пока на бумаге) действительно грубее других, на простых операциях (циклы, условия, математические операции) требует больше кода, не знает даже основ ООП, но у него есть свои преимущества(в теории), которых нет и быть не может у других "нормальных" языков... не каждый "шаг назад" является "деградацией" - иногда это выбор другой, упущенной остальными, дороги...



Пожалуй стоит закрывать вопрос! я получил ответ на свой вопрос и вряд-ли дождусь других (полезных / по теме)...
Соглашусь с Tklwegsd и сделаю регистроНЕзависимым для "упрощения порога входа"...
0
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
07.11.2017, 19:49  [ТС] #11
Кажется понял кому нужны регистрозависимые языки (для функциональности, а не читабельности):
Java
1
Car car=new Car();
0
Tklwegsd
Эксперт 1С
651 / 464 / 152
Регистрация: 24.07.2013
Сообщений: 1,609
07.11.2017, 20:35 #12
andyj, Это в том числе и читабельность. В регистронезависимых языках начинаются разные "фокусы" между идентификаторами типов и переменных, которые для читабельности так и хочется назвать одинаково, а ннет - не получается, регистронезависимость.
0
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
07.11.2017, 21:20  [ТС] #13
Цитата Сообщение от Tklwegsd Посмотреть сообщение
Это в том числе и читабельность.
у меня слишком простой язык (внешне)... однострочные процедуры с параметрами и возможным комментарием в конце.

___ [UnitName __ . __ ] CmdName __ ( [_parm{int, "str", VarName}_] [, [_parm{int, "str", VarName}_] ]) __ ; __ [// comment]
где __=пробел

без ООП(пока) и без привычных процедурных скобок аля {}/begin/end.
И даже имя переменных может совпадать с названием юнита (группы процедур) или названием процедуры.

Если руки дойдут, то правильность названия процедуры/юнита/переменной будет котролировать редактор, а не интерпретатор.
0
KolodeznyDiver
1895 / 1472 / 167
Регистрация: 01.06.2013
Сообщений: 3,069
08.11.2017, 02:10 #14
Прочитал обсуждение и не увидел объективных аргументов за регистронезависимость.
Что регистрозависимость усложняет понимание синтаксиса - это мнение ни на чём не основанное. А мне кажется, как минимум без разницы. Сравниваем:
Java
1
Car car;
Delphi
1
car : TCar;
Во втором случае пришлось увеличить имя типа на одну букву. Где здесь преимущество, в том числе, для обучения?
Цитата Сообщение от Tklwegsd Посмотреть сообщение
"фокусы" между идентификаторами типов и переменных, которые для читабельности так и хочется назвать одинаково
Для читабельности, как раз, нужно различать где тип, а где переменная. Есть даже язык(и) где тип обязан начинаться с заглавной буквы, иначе бы пришлось усложнить синтаксис что бы различить где конкретный тип, а где нет.

Добавлю своего субъективизма (т.к. доказательства не имею). Мне кажется первые регистронезависимые языки появились потому что тогда на АЦПУ, на знаковых барабанах, не умещались буквы обоих регистров. Типа, набирайте как хотите, но в распечатке получите всё заглавными буквами. Вот, что бы это не мешало понимать код. Сейчас, понятно, таких ограничений нет, но некоторые регистронезависимые языки появились и потом в силу инерции мышления.

Так же, для некоторых регистронезависимых языков (Ada GNAT), в IDE, по умолчанию включено автоизменение раскладки, например, отдельно для ключевых слов и обычных идентификаторов. Т.е. регистронезависимость в таком случае, остаётся только для совместимости.
1
andyj
62 / 44 / 4
Регистрация: 16.03.2017
Сообщений: 469
08.11.2017, 04:40  [ТС] #15
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Что регистрозависимость усложняет понимание синтаксиса - это мнение ни на чём не основанное.
Я так и не понял ваше мнение! Вы за регистрозависимость или против???

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Мне кажется первые регистронезависимые языки появились потому что тогда на АЦПУ, на знаковых барабанах, не умещались буквы обоих регистров. Типа, набирайте как хотите, но в распечатке получите всё заглавными буквами.
У регистроНЕзавимых языков есть свои преимущества! Причем не мало...
1) плохо знающие клавиатуру - дети, "домохозяйки", тяжело-обучаемые.
2) сенсорные клавиатуры - смартфоны/планшеты - еле в клавишу попадаешь, некогда следить еще и за регистром
3) надиктовка кода по телефону - (мне приходилось - АД!) - когда надо 2-4 строчки кода заставить набрать и каждый пробел диктовать приходится
4) голосовой набор - технология на походе. попробуй надиктовать гуглу/сири команду с учетом регистра...
5) хорошо выглядит на печати и в рукописи - не надо гадать "здесь большя буква или маленькая"

лишний символ не ухудшает читабельность, а улучшает - на большем расстоянии видно, очки не нужны слабовидящим
0
08.11.2017, 04:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2017, 04:40
Привет! Вот еще темы с ответами:

.NET 4.x Можно ли реализовать регистронезависимый поиск подстроки - C#
Есть ли такое? IndexOf регистрозависим, а использовать регулярные выражения ради поиска подстроки как-то не хочется.

Поиск строки в файле (регистрозависимый, если есть латинские буквы) - C (СИ)
Ввести имя файла и некоторую строку. Произвести поиск строки в файле, причем если в строке встречаются латинские буквы – вести для них...

Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы - Программирование Android
Здравствуйте! Мне нужно добавить возможность выборки из базы данных sqlite по русским буквам (содержащие известнрую проблему с like и...


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

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

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