А. С этим я согласен.
Нормальные формы редко когда бывают удобными. Хотя те же acl-ы в squid выглядят довольно таки удобочитаемыми.
Авторский вариант с деревом дизъюнктов/конъюнктов выглядит более удобным. Хотя там было бы к месту группировка или биндинг новых переменных. Что бы вместо A & (B | (C & D)) можно было написать
X = C & D,
Y = B | X,
A & Y
Изивините, но это не язык программирования (во всяком случае, не Тьюринг-полный). Если не согласны — требую реализации «99 бутылок пива» :)
Это язык описания булевых формул в логике высказываний.
Врядли линукс будет управлять двигателем.
Скорее будет стоять в CarPC, играть музыку, включать радио, и говорить человеческим голосом «Через 100 метров поверните направо». Ну и прочее…
А в таких случаях выкидываются сразу функции целиком, и этим занимается обычно линковщик, а не компилятор.
Кроме случае whole program optimization, как я понимаю. Но это отдельная непростая тема :)
Кстати, очень часто компиляторы не только удаляют unreachable code, но и ещё и ругаются на него ворнингами. А в специфичных случаях — ошибками.
Ибо наличие такого кода обычно сигнализирует о том, что программист где-то ошибся.
Обычно быстродействие упирается в БД, которая стоит за такими сервисами.
И пытаться выжать быстродействия из протокола, который построен на XML поверх HTTP — странно как-то, не находите?
У нас в высоконагруженных системах всё как-то больше ASN1 используется…
Давайте подумаем: нанороботу нужно где-то хранить как минимум свой IPv6 адрес. Пусть для хранения одного бита адреса, нанороботу необходим один атом. Тогда каждый наноробот будет содержать минимум 128 атомов.
Всего вариантов адресов 2^128 = 3,4*10^38. Умножим ещё на 128, получим 4,6*10^40 атомов. Оценка общего количества атомов во вселенной — 10^70. Т.е. на 29,5 порядков больше. С другой стороны — оценка звезд в во вселенной — 10^24. Из чего можно заключить, что наши мифические наноботы уткнутся в лимит IPv6 адресов только тогда, когда будут занимать 10^-4,5=0,0035 часть массы среднестатической звездной системы в нашей Вселенной.
Дожить бы до этого времени :)
Ну для демонстрации возможностей — наверное таки подходит.
Если написали про обязательное логирование, напишите и про обязательную проверку всего, что ввел юзер.
Лично я бы сделал проверку формата, даже если бы единственным пользователем этой штуки был я сам.
Нормальные формы редко когда бывают удобными. Хотя те же acl-ы в squid выглядят довольно таки удобочитаемыми.
Авторский вариант с деревом дизъюнктов/конъюнктов выглядит более удобным. Хотя там было бы к месту группировка или биндинг новых переменных. Что бы вместо A & (B | (C & D)) можно было написать
X = C & D,
Y = B | X,
A & Y
Т.е. как раз выходит, что в строки — это дизъюнкты, а столбцы в строках — конъюнкты. Как раз ДНФ и получается :)
Это язык описания булевых формул в логике высказываний.
Скорее будет стоять в CarPC, играть музыку, включать радио, и говорить человеческим голосом «Через 100 метров поверните направо». Ну и прочее…
Кроме случае whole program optimization, как я понимаю. Но это отдельная непростая тема :)
Ибо наличие такого кода обычно сигнализирует о том, что программист где-то ошибся.
И пытаться выжать быстродействия из протокола, который построен на XML поверх HTTP — странно как-то, не находите?
У нас в высоконагруженных системах всё как-то больше ASN1 используется…
Гейтс не говорил фразу про 640 килобайт :)
Всего вариантов адресов 2^128 = 3,4*10^38. Умножим ещё на 128, получим 4,6*10^40 атомов. Оценка общего количества атомов во вселенной — 10^70. Т.е. на 29,5 порядков больше. С другой стороны — оценка звезд в во вселенной — 10^24. Из чего можно заключить, что наши мифические наноботы уткнутся в лимит IPv6 адресов только тогда, когда будут занимать 10^-4,5=0,0035 часть массы среднестатической звездной системы в нашей Вселенной.
Дожить бы до этого времени :)
Если написали про обязательное логирование, напишите и про обязательную проверку всего, что ввел юзер.
Лично я бы сделал проверку формата, даже если бы единственным пользователем этой штуки был я сам.