Anonymous
С++ без Си как минимум в половине продуктов не нужен.
Snusmumriken
Да прошивки для nintendo switch хакаются блин браузером этой самой нинтенды, когда в некоторые поля подаётся дополнительная херня с командами для проца по переводу в рутмод и запуск пользовательского кода с перелопачиванием этой самой прошивки ))
А вроде бы умные люди пишут, профессионалы своего дела. Опа, что-то забыли, опа обосрались, опа нинтенда теряет тысячи-миллионы баксов на пиратском софте. Сишка при этом тоже не виновата, что кто-то там что-то забыл проверить длину поля. Просто она плохо совместима с живыми людьми которые склонны ошибаться.
Snusmumriken
А так — да, очень просто не ошибаться — просто берёшь и не ошибаешься ))
Snusmumriken
Anonymous
Имеется в виду, что мир без Си мог бы существовать
:) я обычно привык судить по реальности, а не вилами по воде. Но без Си не было бы тех языков,что мы видим сейчас. Вероятно, энивей.
Godruma-vihari Dasa
Насколько я понимаю, C появился как попытка сделать ассемблеро-подобный язык языком высокого уровня. Например, операторы "++" и "--" — это автоинкремент/декремент. Синтаксис C перекочевал в JS и прочие языки. Примерно так же можно ругать FORTRAN/Fortran, который решал (и решает) примерно ту же задачу, но применительно к расчётам. Давным-давно ходила байка об американском спутнике (или автоматической станции?), который улетел не туда из-за замены запятой на точку в операторе цикла при игнорировании пробелов в FORTRAN-IV. На C писать явно проще, чем на языке ассемблера, и в этом его преимущество, не говоря о компактности.
Вилби
Вот тока незнаю где его чаще применяют
Александр
придумать, можно придумать, получится как Си, но удобнее. Вопрос в том как все Легаси за 50 лет переписать.
Не получится как Си, т.к. си по сути это не столько про язык, сколько про аби, на которое очень многое сводится. Если бы в плюсах не было бы extern "C", то его бы мигом закопали.
Александр
Имеется в виду, что мир без Си мог бы существовать
Вряд ли. Си по сути ассемблер среднего уровня и написать вот такой переносимый ассемблер - это первая мысль которая приходит любому человеку на ум, а с учётом того, что Си также принёс адекватный ABI, то так вообще счастье, в противном случае был бы зоопарк по хлеще тех, что среди дистрибутивов Линукс и среди разработчиков по вопросу соглашений о стиле программирования есть.
Вилби
Вряд ли. Си по сути ассемблер среднего уровня и написать вот такой переносимый ассемблер - это первая мысль которая приходит любому человеку на ум, а с учётом того, что Си также принёс адекватный ABI, то так вообще счастье, в противном случае был бы зоопарк по хлеще тех, что среди дистрибутивов Линукс и среди разработчиков по вопросу соглашений о стиле программирования есть.
Появление оптимального языка вроде Си, было вопросом времени. Он создан по принципу базовой архитектуры строения процессоров. Поэтому очень много похожих языков. Принцип логики пока что один, и бинарный. Плюс доминирующие архитектуры машин грубо говоря продиктовали условия появоения этого языка.
Вилби
Это как Питон, интепретатор тот же самый. Который неизбежно должен был появится после компиляторов. Изза возросшей мощности компьютерных систем. Далее будет большая визуалищация программирования. Работа визуальными обьектами.
Вилби
Именно. И канет в лету Си, только когда "фон-Нейману"(хотя нет такого) придёт конец.
Если архитектуру компьютеров изменят. А это невероятно при современном мире)))
Александр
Это как Питон, интепретатор тот же самый. Который неизбежно должен был появится после компиляторов. Изза возросшей мощности компьютерных систем. Далее будет большая визуалищация программирования. Работа визуальными обьектами.
Ну с визуализацией я не согласен. Вы видите тут эволюционную составляющую, которой по моему нет. Причина появления более сахарных языков связана с ограничениями сырого фон-Неймана, а также с тем, что расширился круг разработчиков до менее квалифицированных. Также отчасти сыграл фактор скорости разработки, но по моему дальшейшего углубления визуальной составляющей ждать не стоит, т.к. уже буквально некуда, да и нечего прикручивать, т.к. всё что можно было уже реализовали в виде библиотек или перенеся в синтаксис языков, а переход на чисто визуальную составляющую - очень ограничен.
Sergey
Да ладно вам брюзжать.. Я вот в молодости писал код ручкой в тетрадке загорая на пляже.
RapidCodeLab
Чет вспомнилось, как подобные дампы из журналов Радио по таблице команд переводил в ассемблер код z80 в тетрадке, чисто в попытке понять, что происходит😂
Sergey
Я написал компилятор ассемблера на бейсике) для спектрума в той самой тетрадке. И даже заработало с первого раза. Сейчас я так не умею(
Igor
Я максимум могу Си код в голове отлаживать))
Luсky
Спектрумисты в чяти
Sergey
Ну это я в качестве примера очевидного извращения) Почему сделал - а просто захотелось. Сейчас я предпочитаю сценарные языки, потому что заметно проще отлаживаться в оперативной обстановке - что-то поправил - и сразу видишь результат. А у нас проект большой, компилируется долго (
Sergey
Спектрумисты в чяти
Хе-хе, я исчо МК-61 программировал до этого.
Sergey
Был такой советский калькулятор.
usernameak
мне всё ещё порой приходится писать руками опкоды ARM'а
Sergey
Бог миловал, но с переходом на Армы были траблы.
R
Вручную пробивал дырки в перфокартах. До этого программировал перемычками.
Sergey
Вы будете смеяться, но кое-где ещё используются перфоленты!
Igor
Вы будете смеяться, но кое-где ещё используются перфоленты!
Да не то чтобы смешно, у вояк и оборудование некоторое на досе до сих пор
Igor
Да и не только у них, в принципе
Igor
Так что ленты тоже не сильно удивляют, есть моменты где и без них не обойтись
Igor
Обе штуки вроде как и ушли в историю, а вроде как и нет
Igor
Казалось бы, ленты уже вымерли, дос добить пытаются
Godruma-vihari Dasa
Вручную пробивал дырки в перфокартах. До этого программировал перемычками.
Тоже этим развлекался. Насобачились тогда их даже читать. А ещё лишние (ошибочные) дырки умели "забивать".
Igor
А вот нифига
Igor
Я перфоленты, кстати, вообще не застал (не знаю, к счастью, или нет), только дос цепанул
Sergey
Серьезно? В армии ещё DOS пользуют? Про перфоленты слышал, но софт вроде несколько свежее. Или?
Godruma-vihari Dasa
Насколько помню, DOS сертифицировали в плане безопасности, Windows нет. Сейчас есть отечественные Linux'ы с сертифицированной безопасностью.
Igor
Но сейчас потихоньку всё будут переводить на отечественные линуксы, думаю. Я когда увольнялся там начинали машины ставить с линем потихоньку.
Igor
Поскольку я служил в неочень секретной фигне, у нас там были виндовые компы
Igor
Конкретно у нас какие-то кастрированные хрюшки использовали
Sergey
Конкретно у нас какие-то кастрированные хрюшки использовали
Я слышал давным-давно, что, якобы Windows 2000 было сертифицировано (с предоставлением исходников в соответствующие органы, разумеется), но кто его знает, как это было на самом деле.
Sergey
Ладно, это явный оффтоп.
Igor
Я слышал давным-давно, что, якобы Windows 2000 было сертифицировано (с предоставлением исходников в соответствующие органы, разумеется), но кто его знает, как это было на самом деле.
Может, кстати, это и 2000 была. Там тупо не было возможности посмотреть. Всё, что я видел - это NT-like интерфейс и программу, которая с РЛСок данные получала. Куда ещё попытаешься руки сунуть - на стацтелефон командиру злой айтишник позвонит))
Вилби
Вы будете смеяться, но кое-где ещё используются перфоленты!
Ого, это в каких случаях?) Там микро перфо?))
Sergey
Ого, это в каких случаях?) Там микро перфо?))
Увы, это так-то смешно. Извините(
Igor
Так, появилась хотелка перекинуть функцию из одного луастейта в другой. В принципе этот код работает, но хотелось бы чего-то попроще. Никто подобными приколами не занимался? В частности меня взаимодействие с luaL_Buffer не очень устраивает. Вроде и без него никак, но было бы классно как-нибудь, не знаю, во внутрях врайтера сразу в ридер отправлять данные.
Sergey
Дык откуда я знаю? возможно нано...
Igor
Вроде в aux библиотеках были макросы/функции для обмена данными между состояниями
Да вот смотрел, не было там ничего. Либо я плохо смотрел. Максимум что находил - фигнюхи для сопрограмм.
Александр
Igor
Ну вот я в поиске по документации посмотрел, lua_xmove разве не оно ?
Это для корутин. Чтобы фигня эта работала у луастейтов должен быть общий глобалстейт.
Hello, World! 🎄
Ребят, метод gmatch в string - это же регулярное выражение?
Александр
Ребят, метод gmatch в string - это же регулярное выражение?
Это глобальный поиск по луашным регулярным выражениям.
Hello, World! 🎄
Это глобальный поиск по луашным регулярным выражениям.
Да, спасибо. Я уже разобрался, делал поиск папок\файлов из результата io popen('ls'): string.gmatch(result, '%w+.+')
Александр
Да, спасибо. Я уже разобрался, делал поиск папок\файлов из результата io popen('ls'): string.gmatch(result, '%w+.+')
в луашных регулярках ПМСМ самое вкусное, это шаблон нежадного соответствия
Hello, World! 🎄
Да, спасибо. Я уже разобрался, делал поиск папок\файлов из результата io popen('ls'): string.gmatch(result, '%w+.+')
Тута кстати файлы не правильно определялись, вот так переделал: string.gmatch(result, '%w+%.%w+')
Hello, World! 🎄
Тута кстати файлы не правильно определялись, вот так переделал: string.gmatch(result, '%w+%.%w+')
Заметил, что папки теперь не ищет. string.gmatch(result, '(%w+[.%w]%w+)') Вот так сделал вроде не так сложно, теперь папки тоже находит)
Александр
Тута кстати файлы не правильно определялись, вот так переделал: string.gmatch(result, '%w+%.%w+')
известное сокращение "по моему скромному мнению", родственное английскому IMHO
Александр
Заметил, что папки теперь не ищет. string.gmatch(result, '(%w+[.%w]%w+)') Вот так сделал вроде не так сложно, теперь папки тоже находит)
кстати точка - это шаблон любого символа если мне не изменяет память и его нужно защищать, т.е. %., к тому же имей в виду, что %w - это только цифры и буквы, т.е. некоторые символы не включает, плюс твой шаблон работает только для файлов с одной точкой
Snusmumriken
Да, спасибо. Я уже разобрался, делал поиск папок\файлов из результата io popen('ls'): string.gmatch(result, '%w+.+')
Вообще, по хорошему требуется нормальный парсер этого дела. Например https://luapower.com/path
Snusmumriken
Потому что человек регулярно обсирается в таких штуках, например при появлении сетевых путей или чего-то такого, или при пользовании разными ОС или ещё чему-нибудь такому. Потом лезешь в файлы /home\\/file.ext/ из склеенных тобой кусочков, например, или какие-нибудь составные файлы типа file.tar.gz а то и папки с точками в именах портят тебе малину. Граничных случаев очень много и все учтёшь только за пол годика проб твоих парсеров в разных местах, и ошибок.
Snusmumriken
Нет таких регулярок которые "как везде", есть два основных направления — PCRE и LPEG и ещё несколько. Луёвые похожи на PCRE и реализуют большую часть их функционала.
Snusmumriken
Но единственное место где настоящие регулярки "PCRE как везде" - perl, в остальных местах те или иные фичи не поддерживаются.
Snusmumriken
Плохие люди кто пробелы, слеши, точки в названиях файлов\папок ставит
Не имеет значения, если система это принципиально позволяет — надо поддерживать.
Hello, World! 🎄
Не имеет значения, если система это принципиально позволяет — надо поддерживать.
Допустим путь распарсить, сделать сплит по / и он в папку воспримет как 2 папки