Pull to refresh
65
6.2
Вадим Румянцев @vadimr

Разработчик аппаратно-программных комплексов

Send message

Новое средневековье.

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

Известно, что когда Аристотель написал, что у мухи 8 ног, то почти полторы тысячи лет это утверждение воспроизводилось со ссылками на авторитет, и никому в голову не приходило пересчитать (ну он там вроде на самом деле писал про подёнок с 4 ногами и 4 крыльями, но кому какое дело). Сейчас эти времена вернулись, любой ребёнок спросит: “Алиса, сколько ног у мухи?” вместо натурного эксперимента.

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

Пруфов не будет.

Tags:
+17
Comments6

О компиляторах.

Если проект не содержит в себе один или несколько проприетарных компиляторов, предназначенных для сборки именно этого проекта - то это не очень большой проект.

Ядро Linux по этому определению может называться очень большим проектом. Под него специально затачивается gcc.

У IBM есть даже специальный язык PL/S, используемый специально для написания операционной системы. Компилятор PL/S не доступен вне IBM.

Tags:
+5
Comments0

О языках программирования.

Язык программирования обычно становится конфеткой через 40-50 лет активного использования, когда из него устраняются все абстрактные идеи авторов и привносятся свойства, реально нужные программистам.

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

С другой стороны, стандарт Scheme принимают голосованием программистов по спорным вопросам.

Чем дольше живу, тем больше ценю Лисп и Фортран.

Tags:
+6
Comments20

Индексация массивов (портал в ад).

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

На самом деле, тут можно выделить шесть разных видов языков программирования:

  1. Массивы индексируются с 0.

  2. Массивы индексируются с 1.

  3. Массивы индексируются с 0, но можно указать другое начало.

  4. Массивы индексируются с 1, но можно указать другое начало.

  5. Массивы индексируются только с явно указанного начала.

  6. Массивов в языке нет.

Языков явно выраженного типа (3) мне сходу не удаётся припомнить (хотя в Delphi и C++ есть некоторые движения в этом направлении), а в остальном известные мне языки довольно равномерно распределены между типами.

Нумерация с 0 упрощает индексную арифметику.

Нумерация с 1 соответствует естественному натуральному счёту и математической нотации.

В связи с этим, к нумерации с 1 тяготеют в основном языки для вычислительного применения (Фортран, Матлаб, Джулия). Страшно представить, сколько проклятий получили авторы NumPy от людей, переводящих алгоритмы с Фортрана.

Tags:
Total votes 2: ↑1 and ↓10
Comments14

Пошла мода писать манифесты, напишу и я что-нибудь эдакое.

Система не сводится к сумме своих частей.

Поэтому декомпозиция, как метод проектирования, ущербна.

Встаёт вопрос, как же тогда нам просто описывать сложное? Здесь скрывается некоторая смысловая тонкость. Мы можем просто описывать сложное сложными словами. А дальше настоящее наше дело – представить эти сложные слова другими, простыми словами, которыми описать сложное сложно, но технически возможно.

То есть метаязыковая абстракция решает, и DSL – наше всё.

Может возникнуть вопрос, не то же самое ли это, что декомпозиция, просто другими словами? Но нет, семантическая абстракция не является делением на части ни описываемого понятия, ни описывающих его слов. Это противоположный процесс, синтез.

Tags:
Total votes 6: ↑5 and ↓1+5
Comments2

Откуда берётся мусор?

Рассмотрим следующую программу:

#include <stdio.h>
int main () {
  int a [100];
  int i;
  for (i=0; i<100; i++)
    printf ("%d ", a[i]);
  return 0;
}

При компиляции без оптимизации и вызове в Linux она выдаст некоторые числа, являющиеся мусорным содержимым памяти. Кто-нибудь в состоянии объяснить, откуда конкретно они берутся, и почему каждый раз разные при последовательных запусках программы?

Казалось бы, если это просто содержимое адресов, на которые приходится соответствующая секция исполняемого модуля, то оно должно бы сохраняться от запуска к запуску?

Объяснение в стиле “потому что виртуальные адреса мапируются на реальные рандомно” я и сам могу дать, хочется более глубокого понимания. Компьютер – вещь детерминированная, в нём случайность – это не познанная закономерность.

Upd: ответ дан уважаемым @alexvangog в закреплённом комментарии.

Tags:
Total votes 4: ↑3 and ↓1+2
Comments13

Information

Rating
1,053-rd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Project Manager, Software Architect
Lead