Pull to refresh
59

Пользователь

11
Subscribers
Send message

Как, как да как.

Легко — именно так работает IDE классического VB и VBA. Она вообще не хранит код как текст. Вы его не нацдёте в памяти процесса. Даже в виде отдельных строк. И у неё вообще нет проблем с представлением синтаксически некорректных данных — просто путём введения отдельной сущности для представления некорректных стейтментов.

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

Так вот, именно так устроен Visual Basic и VBA. Классический VB, а не дотнет, например VB6. Код перестает быть плейтнекстом в момент загрузки с диска. Дальше IDE работает с бинарными графоподобными и RPN-подобнымм данными. Для отображения кода на экране он воссоздаются на лету — только те строки, которые нужно отрисовать.

Всем злопыхателем, которые в статье написали, что идея неудачная и её не реализовать и она спотыкнётся на синтаксически некорректных данных можете приводить это как пример и как опровержение.

Господи... Во что они превращают C++...

В этом комменте собраны все когнитивные ошибки, какие только можно. Начиная с «ошибки выжившего»...

Судить по открытому окну это худшее, что можно придумать. Гораздо достовернее иметь приятеля ПТУ-шника, который рассказывает, как нежные прецизионные вещи забиватся с помощью кувалды и какой-то матери. Из раза в раз, а не в виде редчайшего исключения.

Ещё один хорой способ делать суждения: это посмотреть на множество машин после местных владельцев (а не свежепригнанных с Европы): количество синей изоленты, обходов и упрощения штатных систем, и прочего колхоза зашкаливает.

Но нет, мы будем судить по виду из окна. Ведь каждая увиденная в окне машина гарантированно прошла через ПТУ-шника, и над каждой такой левитирует светящийся нимб, который тождественнен тому, что эта машина дальше будет долго и благополучно ездить, без шанса скорой поломки, без риска для безопасности.

Автомобили ремонтируют обычные рабочие,

Да.

нормально у них получается.

Нет, нет и ещё раз нет.

И что, любой человек, который может в ремонт ноутбуков, способен разрабатывать GNSS? С их гигагерцовыми сигналами и прочей СВЧ-магией?

Наверное в постсоветском мире это и правда дешелвле: но это только доказывает мой поинт — оно дешевле, потому что людей, способных на что-то такое, немного, а задач для них около нуля. Поэтому они готовы разрабатывать GNSS за еду. Иначе по заклнам рынка это обходилось бы дороже, чем с Китая.

Ну да, особенно на фоне того, что технику делают катастрофически трудноремонтируемымой.

Недавний пример: чип на материнской плате, в который зашит криптоключ, и этот чип общается с другими чипами, и криптоключ используется для дешифровки. Оный чип сгорел. Если заменить его на новый, что само по себе не просто, ибо БГА, то ничего не заработает, потому как без наличия криптоключа взаимодействия с соседними чипами не получится.

Ноутбук Делл.

Чем и где зарабатывать? Разработкой электроники?

Придумайте мне задачу, и я покажу, что китайцы уже давно сделали это и продают...

>нормальную 64-битную версию x86

IA-64 это не 64-битная версия x86, это VLIW.

Без AMD, глядишь, Интел бы придумала нормальную 64-битную версию x86, а не то, что сейчас известно под именем amd64 aka x86-64.

Только не спрашивайте, что не так с x86-64.

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

В аду есть отдельный котёл для тех, кто такую форму записи придумал.

В Си исключения сравнительно легко эмулируются с помощью функций setjmp/longjmp. Легко пишутся макросы my_try, my_catch, которые позволяют получить структуры кода как в плюсах.

Я вообще не пью, не курю и уж тем более наркотики никогда не употреблял.

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

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

Но это же трындёж (если не сказать грубее) чистой воды. 2001 год, говорите? Уже XP на подходе была, Windows 2000, NT 4.

Удаленный терминал рабочий стол — был.

Параллельная работа нескольких пользователей — была.

Разрешения для файлов в NTFS — были.

Нормальная консоль? Консоль как консоль, может быть инструмениариев типа grep, sed, awk, xargs недоставало, но это же не вина консоли.

Чел возможно сидел на 9x и FAT32, раз жалуется на странные вещи.

Но дальше начинается лютая бредятина: процессы и семафоры. То есть человек на полном серьезе претендует, что в ОС Windows не было ни концепции семафоров, ни, тем более, концепции процессов? Может он под MS-DOS сидел, а ему все говорили, что именно это и есть Windows?

Такова плата за полагание в разработке на фундаментально порочную парадигму.

вызова VirtualAlloc с флагом MEM_RESERVED. Казалось бы, память (RAM) должна просто зарезервироваться в ядре Windows, но НЕ выделяться физически.

Автор не понимает, как устроена виртуальная память в Windows. Ни в коем случае флаг MEM_RESERVE не резервирует RAM. Он резервирует диапазон адресов виртуального адресного пространства конкретно взятого процесса. Резервирует — значит просто делает запись, что такой-то диапазон адресов считается зарезервированным, и последующая попытка зарезервировать какой-то другой диапазон, пересекающийся с этим, окончится неудачей.

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

Это чисто вопрос борьбы с фрагментацией адресного пространства, с ситуацией, когда свободно 80 процентов АП, но самый большой непрерывный регион, который может быть выделен — не больше 2 процентов от размера АП.

Причем гарантия весьма эфемерная. По идее, более надёжным решением было бы, если бы Windows в ответ на операцию резервирования (reserve) возвращала прикладному коду некий token/cookie, а при операции выделения (commit) разрешала бы выделять только при предоставлении токена, доказывающего право вызывающей стороны распоряжаться страницами именно в этом диапазоне. Тогда бы каждый смог выделять/освобождать сираницы только в том регионе, в который он предварительно зарезервировал.

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

Так вот, информация о карте свободных/зарезервированных/занятых страницах (регионах адресов) для каждого процесса хранится в виде сбалансированного дерева, которое называется VAD-tree, где VAD — virtual address (space) descriptor.

И при операции резервирования если какие-то ресурсы и тратятся, так это память под VAD.

VBScript в офисе? Вы о чем вообще?

Как будто в программировании нет точно таких же тлетворных тенденций, что вы описали...

Information

Rating
Does not participate
Location
Петропавловск, Северо-Казахстанская обл., Казахстан
Registered
Activity

Specialization

Десктоп разработчик, Инженер встраиваемых систем
Pure C
Assembler
X86 asm
Win32 API
Visual Basic
MySQL
Git
ООП
Разработка электроники
Обратная разработка