RE: актуальность применения языка ассемблера в современном мире
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-03 22:41:33.090000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: xxxGradxxx Что такое ситнтаксис? Это грамматика и она сущевствует для каждого языка. К этой граматике строится PDA (это часть компилера), который проверяет количество открывающихся и закрывающихся скобок, правельность выражения и т.д. синтаксический анализатор занимается превращением текста, порождённого некоторой грамматикой, в некоторое промежуточное представление - в массе своей в AST. синтаксис лиспа и есть AST, и данного преобразования не требует (что и делает возможными богатые возможности CL в смысле метапрограммирования). лисп - это язык, у которого IR показан наружу; синтаксис же к нему можно прикрутить какой душе угодно quote:
ORIGINAL: xxxGradxxx Если компилятор делает не машинный код (ассемблер код), расскажи мне, что он тогда делает? как твою программу понимает процессор? Как все это работает? компилятор (в общем случае) занимается трансляцией высокоуровневого языка в низкоуровневый. в случае C# мы имеем трансляцию исходников C# в .Net IR, генерацию байткода, и JIT-компиляцию в машинные коды в момент выполнения. до JIT-компиляции машинных кодов у нас нет. если на твоём компьютере не будет развёрнут .Net CLR, процессор "не поймёт" твою программу. и "работать" это не будет quote:
ORIGINAL: xxxGradxxx Я не преплел, вопрос был "актуальность применения языка ассемблера в современном мире". Крэкеры у нас уже прошлое? во-первых, реверс-инжениринг сколько-нибудь сложной системы практически не имеет смысла - за пределами слома защиты от дурака он не работает. во-вторых - дизассемблирование, крякинг, и прочий детский сад я не обсуждаю; выше по треду я уже указывал, что вопрос стоит о разработке quote:
ORIGINAL: xxxGradxxx "расчёта на регистровой машине" - а на каких машинах мы работаем? Здесь ты вообще тупонул. на гибридных вообще-то, но не в этом суть; большинство современных VM - стековые, и неспроста. предметная же область в большинстве случаев чертовски плохо ложится на регистровые вычисления. именно из-за этого люди бьются и изобретают всякие FORTRAN'ы и Algol'ы - чем дальше ты уходишь от регистровой машины, тем меньше сил тебе приходится тратить на решение задачи распределения регистров (тем более на такой убогой архитектуре, как x86), и тем больше сил ты можешь бросить на решение своих задач quote:
ORIGINAL: xxxGradxxx "предметной областью и областью решений сформулировать" - ты о чем? переведи эти определения на английский предметная область - domain; область решений - ну, пусть будет language features, раз уж мы о языках quote:
ORIGINAL: xxxGradxxx Ты когда-нибудь строил процессор? переход на личности в техническом разговоре - признак чертовски дурного тона. я работаю с FPGA, если тебе от этого станет легче; у меня есть некоторый опыт проектирования HW/SW систем
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-03 23:05:11.396666
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
Тема а-ля "Я самый лучший! Я самый длинношеий!" ТСу не хватает общения в реале с представительницами женского пола, вот он и комплексы свои сгружает на всех… Думаешь заучил пару терминов и ты уже "жопой ежиков давил" ?
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-03 23:44:32.450000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
я вообще-то стараюсь придерживаться аргументированного стиля дискуссии. есть что сказать по существу - говори; нет - лучше помолчи, умней ты себя уж точно не выставишь к слову сказать, спермотоксикоз - пожалуй, самый популярный диагноз по юзерпику на этом ресурсе; должно ли это удивлять? увы, я не силён в психоанализе и ещё момент. цели этого топика я (и не только я) уже озвучивал - в узком смысле это развенчание мифов о программировании на ассемблере, в широком - пинок читающим, заставляющий задуматься и (возможно) расширить свой кругозор. ты, пришедший сюда меня оскорблять,- какую из этих целей ты считаешь неверной, опасной, плохой, либо недостойной? или тебе просто захотелось что-нибудь сказать - чтобы и не напрягать мозг, и выглядеть получше? что ж, прекрасный пол оценит - у нас тут герой, победитель дракона! браво! браво! неаргументированно оскорбить собеседника - деяние, достойное настоящего мужчины. снимаю шляпу
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 00:31:49.526666
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
quote:
синтаксический анализатор занимается превращением текста, порождённого некоторой грамматикой, в некоторое промежуточное представление - в массе своей в AST. Я тебе честно скажу, lisp я вообще не знаю, но я изучал компилеры. Синтаксический анализатор, как мне кажется ты имеешь ввиду Push-down Automat, не занимается "превращением текста, порожденного некоторой грамматикой", а проверяет, подходит ли текст к грамматике языка. Все формальные языки имеют грамматику (эта грамматика называется context-free grammar) quote:
лисп - это язык, у которого IR показан наружу; синтаксис же к нему можно прикрутить какой душе угодно Какой душе угодно и отрицать, что его там нет - это совсем разные вещи, не правда ли? quote:
компилятор (в общем случае) занимается трансляцией высокоуровневого языка в низкоуровневый. компилятор (в общем случае) занимается проверкой синтаксиса и семантики. Затем он создает машинный код. Случай с с# это скорее всего единственный случай. Хотя нет, в Java тоже используют эту технологию. Ты наверное догадываешься для чего это зделано? quote:
во-первых, реверс-инжениринг сколько-нибудь сложной системы практически не имеет смысла - за пределами слома защиты от дурака он не работает. во-вторых - дизассемблирование, крякинг, и прочий детский сад я не обсуждаю; выше по треду я уже указывал, что вопрос стоит о разработке хорошо, bios программируют на asm. вообщем выше я тоже писал, где он используется. quote:
на гибридных вообще-то, но не в этом суть; большинство современных VM - стековые, и неспроста. скинь ссылочку какую-нить, а то чувствую меня хотят наебать. Еще скажи что они конвеерные. Ты предстовляешь себе работу со стеком. Это LIFO принцип? quote:
предметная область - domain; область решений - ну, пусть будет language features, раз уж мы о языках ты меня еще больше запутал! quote:
переход на личности в техническом разговоре - признак чертовски дурного тона. я работаю с FPGA, если тебе от этого станет легче; у меня есть некоторый опыт проектирования HW/SW систем О коллега, а я вот только закончил собирать процессор на VHDL. представляешь?
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 02:19:25.673333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: xxxGradxxx Я тебе честно скажу, lisp я вообще не знаю, но я изучал компилеры. Синтаксический анализатор, как мне кажется ты имеешь ввиду Push-down Automat, не занимается "превращением текста, порожденного некоторой грамматикой", а проверяет, подходит ли текст к грамматике языка. Все формальные языки имеют грамматику (эта грамматика называется context-free grammar) плохо изучал. не изучил. General Top-Down парсер - не единственный способ парсить CF-грамматику, а PDA - далеко не единственная реализация такого подхода; посмотри хотя бы Definite Clause Grammars из Prolog'а, чтобы убедиться в том, что твои представления несколько ограничены что касается генерации, то парсер - не единственная часть синтаксического анализатора. ежели ты считаешь, что генерация AST - лишний этап, то скажи - каким образом ты будешь строить кодогенератор? оперируя текстом, как это сделано в интерпретаторе Tcl? так это исключение, второй такой язык ещё поискать (и ценой ему - жуткие тормоза) дальше. формальные языки только по одной иерархии (Хомского) могут иметь 5 разных видов грамматик - от свободной грамматики до грамматики конечных состояний, CF - всего лишь один вид из этих пяти; впрочем, существуют и другие классификации. ты очень сильно плаваешь в теме, не надо спорить, лучше книжки почитай. могу порекомендовать парочку хороших если вдруг вышесказанное тебя не убедило - вперёд, покажи мне EBNF для C++ quote:
ORIGINAL: xxxGradxxx Какой душе угодно и отрицать, что его там нет - это совсем разные вещи, не правда ли? нет. попробуй средствами C++ изменить его синтаксис, не нарушив систему типов. в лиспе синтаксиса нет, поверх IR ты строишь всё что хочешь - в языках с фиксированным синтаксисом у тебя этого просто не получится сделать quote:
ORIGINAL: xxxGradxxx компилятор (в общем случае) занимается проверкой синтаксиса и семантики. Затем он создает машинный код. у тебя очень странное представление о том, как работает компилятор. там нет чёрной магии, уверяю тебя. для того, чтобы "создать машинный код" после "проверки синтаксиса и семантики", ему нужна какая-то технология. потрать десять минут времени, погугли атрибутные грамматики и синтаксически управляемую трансляцию. и не пиши столь удивительную чушь, уши же вянут quote:
ORIGINAL: xxxGradxxx Случай с с# это скорее всего единственный случай. Хотя нет, в Java тоже используют эту технологию. а ещё в Scala, Groovy, Perl, Python, Ruby, CL, Erlang, F#, Rebol и практически любой современной реализации языков программирования. любой динамический язык, или язык, имеющий развитые возможности рефлексии, будет использовать эту технологию quote:
ORIGINAL: xxxGradxxx Ты наверное догадываешься для чего это зделано? да. а ты - нет quote:
ORIGINAL: xxxGradxxx хорошо, bios программируют на asm. вообщем выше я тоже писал, где он используется. ок, BIOS программируют на ассемблере. система достаточно проста, чтобы не прострелить себе ногу quote:
ORIGINAL: xxxGradxxx скинь ссылочку какую-нить, а то чувствую меня хотят наебать. Еще скажи что они конвеерные. Ты предстовляешь себе работу со стеком. Это LIFO принцип? о! появился интерес к самообразованию :) это же прекрасно. ссылочку? пожалуйста: http://en.wikipedia.org/wiki/Java_Virtual_Machine: This language conceptually represents the instruction set of a stack-oriented, capability architecture детальней: http://www.artima.com/insidejvm/ed2/jvm2.html http://www.xs4all.nl/~mpdeboer/scriptie/node5.html http://en.wikipedia.org/wiki/Common_Intermediate_Language: CIL is an object-oriented assembly language, and is entirely stack-based. It is executed by a virtual machine детальней: http://msdn.microsoft.com/en-us/library/ddk909ch(VS.71).aspx и - да, стек это именно LIFO. описание разницы между стековыми, регистровыми и гибридными машинами нужно? если уж разбирать вопрос нормально, то ноги у всех этих VM растут из Forth-машин; крайне рекомендую сравнить Forth с ассемблером quote:
ORIGINAL: xxxGradxxx ты меня еще больше запутал! ок. попробую упростить. предметная область - это задача, которую надо решить. область решений - те инструменты, которые есть в твоём распоряжении для решения задачи. если рассматривать, например, задачу имитационного моделирования колебания струны на языке IA-32, то предметная область - теория дифференциальных уравнений в частных производных, а область решений - набор регистров и опкодов, которыми ты можешь оперировать. так понятней? quote:
ORIGINAL: xxxGradxxx О коллега, а я вот только закончил собирать процессор на VHDL. представляешь? вполне. надеюсь, что в этой области ты подкован хоть чуть-чуть лучше, чем в теории компиляторов
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 11:21:07.063333
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
quote:
ORIGINAL: Denaturat я вообще-то стараюсь придерживаться аргументированного стиля дискуссии. есть что сказать по существу - говори; нет - лучше помолчи, умней ты себя уж точно не выставишь к слову сказать, спермотоксикоз - пожалуй, самый популярный диагноз по юзерпику на этом ресурсе; должно ли это удивлять? увы, я не силён в психоанализе и ещё момент. цели этого топика я (и не только я) уже озвучивал - в узком смысле это развенчание мифов о программировании на ассемблере, в широком - пинок читающим, заставляющий задуматься и (возможно) расширить свой кругозор. ты, пришедший сюда меня оскорблять,- какую из этих целей ты считаешь неверной, опасной, плохой, либо недостойной? или тебе просто захотелось что-нибудь сказать - чтобы и не напрягать мозг, и выглядеть получше? что ж, прекрасный пол оценит - у нас тут герой, победитель дракона! браво! браво! неаргументированно оскорбить собеседника - деяние, достойное настоящего мужчины. снимаю шляпу Ы)) что-то напоминает, только не могу вспомнить что именно))) В общем, верь что ты лучший))
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 13:07:07.963333
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
quote:
плохо изучал. не изучил. General Top-Down парсер - не единственный способ парсить CF-грамматику, а PDA - далеко не единственная реализация такого подхода; посмотри хотя бы Definite Clause Grammars из Prolog'а, чтобы убедиться в том, что твои представления несколько ограничены Дорогой товарищь, конечно не единственный, второй способ - это Turing машина. Я тебе об одном, ты мне о другом. Ты согласен со мной, что LISP формальный язык? Согласен ли ты со мной, что все языки программирования - это языки Typ2 в хомской иерархии? Если ты с этим согласен, тогда знай, что для для любого Typ2 языка сущевствует Typ2 и Typ1 и Typ0 грамматика, по которой строится Push down Automat и Turing машина. Сейчас дальше посмотрим, на сколько ограничены мои и насколько твои представления. quote:
формальные языки только по одной иерархии (Хомского) могут иметь 5 разных видов грамматик - от свободной грамматики до грамматики конечных состояний, CF - всего лишь один вид из этих пяти; впрочем, существуют и другие классификации. ты очень сильно плаваешь в теме, не надо спорить, лучше книжки почитай. могу порекомендовать парочку хороших В иерархии Хомского 4 типа языков. Откуда ты взял пятый? ааа, ты наверное о DCF и NDCF, так знай, что они лежат в одном классе CF. "впрочем, существуют и другие классификации" о чем здесь речь? quote:
если вдруг вышесказанное тебя не убедило - вперёд, покажи мне EBNF для C++ Все писать - это очень долго и муторно, я покажу тебе проверку выражения на синтаксис. G=({S,A,B},{0,1},S,R) R={ S->(S)|S+S|S*S|A|B A->0A|0B|0 B->1B|1A|1 } quote:
нет. попробуй средствами C++ изменить его синтаксис, не нарушив систему типов. в лиспе синтаксиса нет, поверх IR ты строишь всё что хочешь - в языках с фиксированным синтаксисом у тебя этого просто не получится сделать смотри выше. quote:
у тебя очень странное представление о том, как работает компилятор. там нет чёрной магии, уверяю тебя. для того, чтобы "создать машинный код" после "проверки синтаксиса и семантики", ему нужна какая-то технология. потрать десять минут времени, погугли атрибутные грамматики и синтаксически управляемую трансляцию. и не пиши столь удивительную чушь, уши же вянут Давай разбиремся о моих представлениях здесь. Сущевствует Сигнатура, в которой прописываются множества и операции на множества. Сигнатуру имплементирует алгебра (часть из них, языки программирования) которых несчетное колечиство. Если в сигнатуру добавить уравнинения, то получается спецификация. Не все Алгебры входя в спецификацию, а только та часть, которая выполняет некоторые условия, одно из них: Алгебра должна выполнять уровнения спецификации. Еще сущевствует такое определение,как инициальная алгебра. Это та алгебра, с которой существует только один хомоморфизм во все алгебры спецификации. Инициальные алгебры (языки программирования) между собой изоморфы, значит сущевствут биективная функция (запомни, этонам еще пригодится)между ними. Теперь от теории к практике. Вчера ты сказал, что компилер переводит в язык низкого уровня.Это верно. Но как он это делает? Ты запомнил, что сущевствует биективная функция между ЯП? так вот, с помощью этой функции он это и делает. Что такое низкоуровневый язык - это язык, на котором ты пишешь сразу в байт коде ( только не говори, а как же mov,addб etc. Это зделанно для удобства, что бы не запоминать опецрационный код, длинною до 32 бит). Поэтому я и назваю конечную фазу компеляции ассемблированием(переводом в машинный код). quote:
ок, BIOS программируют на ассемблере. система достаточно проста, чтобы не прострелить себе ногу Ну так теперь зделай вывод в слух, где применяется ассмблер?
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 15:36:21.973333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: xxxGradxxx Еще сущевствует такое определение,как инициальная алгебра. Это та алгебра, с которой существует только один хомоморфизм во все алгебры спецификации. Инициальные алгебры (языки программирования) между собой изоморфы, значит сущевствут биективная функция (запомни, этонам еще пригодится)между ними. Теперь от теории к практике. Вчера ты сказал, что компилер переводит в язык низкого уровня.Это верно. Но как он это делает? Ты запомнил, что сущевствует биективная функция между ЯП? так вот, с помощью этой функции он это и делает. Господа теоретики, вам самим-то не смешно заявлять такое? Вы на практике попробуйте найти эту биекцию. Обещаю вам года безуспешных поисков. Не надо переходить от теории к практике без большой надобности. В теории может быть сколько угодно изоморфизмов, а в практике их нету. Ну нету. Знаешь почему? Теория всегда исходит от предположения типа: допустим, что ситуация достаточно благоприятна. На практике такого не бывает, на практике приходится исходить из допущения, что как только мы выключим свет, то мало того, что изо всех щелей полезут тараканы, так ещё кто-нибудь вломится в окно. Короче (долой лирику!), тебе надо на примерах объяснять отсутствие изоморфизма, или так поверишь? Косвенным указанием на отсутствие такого изоморфизма, предлагаю считать название наиболее популярного дизассемблера IDA: Interactive DisAssembler. Второе указание – это это само понятие рефакторинга кода. Прямые же примеры доказывающие отсутствие какого-бы ни было изо- гомо- и всех прочих морфизмов я могу привести, но мне кажется, тебе было бы интересно найти их самостоятельно. ps. А вообще, заканчивайте письками меряться, тут уже даже без вникания в слова понятно у кого длиннее.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 16:10:20.456666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Гы. Просмотрел ветку. Столько букф, а я не высказывал своего мнения по этому животрепещущему вопросу… Как же это так могло случиться. Итак. Ассемблер – это круто. Современные компиляторы жгут в оптимизации, но, хоть их и непросто обогнать по скорости, но можно, а если речь идёт об оптимизации по размеру кода, то однозначно ручное ассемблерование наиболее эффективно. Ассемблер – это прикольно. Мне очень нравится писать на ассемблере. Стоит элементарно вспомнить как я недели две создавал дискетку, которая имела ёмкость 1960Kb вместо 1440 и при этом была загрузочной. Ммм… Весь мозг переломал, изучил досконально контроллер FDD, нашёл груду оригинальных решений проблем катастрофической нехватки места под хранение кода (а попробуй впихни драйвер FDD в 512 байт!), заодно линёвый драйвер написал, который с этим форматом работал. Веселуха! Или как я, желая написать собственную ось (каюсь, было), долго-долго изобретал в чём же будет уникальность этой оси, и в конечном итоге придумал, что ось должна быть *nix-like и минимального размера (впихиватся в 2Mbit'а). Ух ты! 16-битное программирование в защищённом режиме. Никогда не думал что это может хоть зачем-то пригодиться. И какая ностальгия – регистр ax… Я им последний раз в досе пользовался. А срыв стека, переполнение буфера, шеллкоды, полиморфный код? Ну куда тут без ассемблера? А гонка за бинарником hello-world минимального размера? Но… Есть грядка паршивых "но", которые портят всю малину. Они наверное всем известны, но я боюсь отдельные участники обсуждения не поймут меня, если я их не перечислю, поэтому перечисляю: - Ассемблер – это непереносимо. С одного процессора на другой. Даже если процессоры и одинаковы практически по набору команд, всё не так радужно как хотелось бы. Даже если забыть про совершенно различные техники оптимизации кода для i486 и i586. Даже так, офигенно соптимизированную программу при переносе придётся оптимизировать по новой. Вручную. Неделями. В то время как компилятор сделает это автоматически и на десяток порядков быстрее. - Ассемблер – это долго и несистемно. Да, если иметь навык можно писать достаточно быстро и даже довольно-таки большие программы. Но, особенно второе – большие программы, потребует отказа от ряда прелестей ассемблера, типа передачи аргументов в функцию в первом попавшемся месте – регистре общего назначения, в регистре FPU/MMX, или в регистре SSE, или в потоке кода, или, на крайняк в стеке (какие там ещё способы можно придумать?). По-любому придётся загонять себя в рамки и писать код используя ограниченные возможности ассемблера, то есть действовать так, как действует компилятор ЯП высокого уровня. Сейчас даже микроконтроллеры программируют на C. И всё по этим самым причинам. Да, есть суровые люди, которые не признают arm'а под линуксом: столько памяти и тактов процессора, и всё впустую. По их мнению надо написать всё что нужно на asm'е, и получить гораздо более эффективное решение. В чём-то они правы. Но это лишь до тех пор, пока сложность их программерских решений ограничена чем-нибудь типа чтением файлов с флешки отформатированной в fat32 и декодированием mp3. Когда же возникает желание работать и с ext* и ntfs, равно как и с ogg/vorbis, flac…, а заодно ещё на экранчике груду полезных приложений иметь, то уже возникает сомнение в их правоте. А когда, до кучи, мы приделываем к девайсине rj45 разъём и wifi антенну, то рождается желание поиметь полноценную ось, да и ассемблер уже не выглядит лучшим подходом к решению проблемы. ЯП – это автоматизация ручного труда, причём огромная автоматизация. И как фанат автоматизации, я не могу этого не оценить. Но… (ещё одно паршивое "но" :D) Ассемблер – это круто и никто меня в этом не переубедит.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 17:29:33.470000
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
rgo, значит ты считаешь, что теоритическая информатика - филькина граммота? Ты наверное знаешь, что ЯП просто так не садятся и не пишут, а сначало его моделируют. Моделирование - это и есть часть теоритической информатики. quote:
Господа теоретики, вам самим-то не смешно заявлять такое? Вы на практике попробуйте найти эту биекцию Конечно есть эта биекция. Несущие множества одинаковы, принципы сложения и вычитания тоже одинаковы. quote:
Теория всегда исходит от предположения типа: допустим, что ситуация достаточно благоприятна Есть такой принцип доказательства в теории, называется доказательством от обратного.Допустим, что ситуация достаточно благоприятна и доказываешь, что ситуация не достаточно благоприятная. quote:
на практике приходится исходить из допущения, что как только мы выключим свет, то мало того, что изо всех щелей полезут тараканы, так ещё кто-нибудь вломится в окно Есть такое в практике и называется это не предсказуемостью. В компьютерных системах все предсказуемо, просто еще не совершенно, венной тому корявые руки. quote:
тебе надо на примерах объяснять отсутствие изоморфизма, или так поверишь? Конечно объясни, очень интересно. Постарайся формально, а не на примерах. PS. я в курсе, что модератор всегда прав :-)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-04 17:29:59.810000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
поскольку резюме rgo мне по нраву, продолжать тему ассемблера я и правда не буду. sapienti sat и jedem das seine. однако последние комментарии к теории компилирования оставлю, ибо мало ли кто будет читать тред - решит ещё что всё правильно quote:
ORIGINAL: xxxGradxxx Дорогой товарищь, конечно не единственный, второй способ - это Turing машина. Я тебе об одном, ты мне о другом. машина Тьюринга в данном контексте не причём - это всего лишь универсальный вычислитель (такой же, как лямбда-исчисление Чёрча) - конкретно к задаче парсинга отношения не имеет. то, что я имел в виду - General Directional Top-Down/Bottom-Up Parsing, и Deterministic Directional Top-Down/Bottom-Up Parsing - вот тебе уже четыре существенно различных методики парсинга CF-грамматики quote:
ORIGINAL: xxxGradxxx Ты согласен со мной, что LISP формальный язык? Согласен ли ты со мной, что все языки программирования - это языки Typ2 в хомской иерархии? да, LISP формальный язык. нет, синтаксис далеко не всех языков порождается CF-грамматикой. откуда ты вообще это взял? контрпример я тебе приводил - синтаксис C++ порождается CS-грамматикой, поэтому построить для него BNF нельзя quote:
ORIGINAL: xxxGradxxx Если ты с этим согласен, тогда знай, что для для любого Typ2 языка сущевствует Typ2 и Typ1 и Typ0 грамматика, по которой строится Push down Automat и Turing машина. во-первых, задача распознавания для языка, порождённого грамматикой типа 0 по Хомскому, алгоритмически неразрешима - именно в том смысле, что ни один универсальный вычилитель, эквивалентный машине Тьюринга, не способен её решить. во-вторых, фраза о существовании грамматик просто бессмысленна, комментировать не буду детальней по грамматикам 0 типа: http://lib.mexmat.ru/books/9019 (стр. 182-183) http://www.amazon.com/Introduction-Formal-Languages-Gyorgy-Revesz/dp/007066501X (стр. 98) quote:
ORIGINAL: xxxGradxxx В иерархии Хомского 4 типа языков. Откуда ты взял пятый? ааа, ты наверное о DCF и NDCF, так знай, что они лежат в одном классе CF. нет, ты не угадал. я про грамматики конечного выбора - FC, Finite Choice, для которых добавляется ещё одно ограничение поверх регулярных грамматик - запрет на наличие нетерминала в правой части правила порождения (что делает подобную грамматику негенеративной). так, множество зарезервированных слов в языке программирования - типичный пример FC. ввёл четвёртый тип в иерархию не Хомский, однако в современной практике СS он активно используется подробней: http://books.google.ru/books?id=05xA_d5dSwAC&pg=PA33&lpg=PA33&dq=finite-choice+grammars&source=bl&ots=3MuB8IedKa&sig=qxRbKumoVTyQ8rfkJoeRdoQGMw0&hl=ru&ei=VDF4Sq6MOYGE-QbnzbzLBQ&sa=X&oi=book_result&ct=result&resnum=2#v=onepage&q=finite-choice%20grammars&f=false quote:
ORIGINAL: xxxGradxxx "впрочем, существуют и другие классификации" о чем здесь речь? двухуровневые (VW) грамматики: http://homepages.cwi.nl/~steven/vw.html расширенные аффиксные грамматики: http://en.wikipedia.org/wiki/Extended_Affix_Grammar TAGs (tree-adjoint grammars): http://cat.inist.fr/?aModele=afficheN&cpsidt=2446507 http://www.springerlink.com/content/x300533l86g75x77/ ACG (attribute coupled grammars): http://portal.acm.org/citation.cfm?id=502890 HOG (грамматики высших порядков): http://www.ling.ohio-state.edu/~hana/hog/ PEG (parsing expression grammar): http://en.wikipedia.org/wiki/Parsing_expression_grammar и это ещё не все сущетвующие формализмы; некоторые из них имеют сугубо академическую ценность, некоторые активно применяются в разработке. иерархией Хомского мир распознавания языков не ограничивается quote:
ORIGINAL: xxxGradxxx Все писать - это очень долго и муторно, я покажу тебе проверку выражения на синтаксис. это не "долго и муторно". это невозможно quote:
ORIGINAL: xxxGradxxx Давай разбиремся о моих представлениях здесь. из того, что между двумя языками существует изоморфизм (биекция, если тебе приятней это слово) следует только то, что можно построить обратимый транслятор. в реальной жизни это очень редко так - морфизмы получаются достаточно сложными, и ни в коем случае не обратимыми. опять же, можешь отстоять свою точку зрения путём построения изоморфизма между Scheme и IA-32 и бросай использовать умные слова, смысла которых не вполне понимаешь. от того, что ты назовёшь трансляцию морфизмом алгебр, задача его построения не решится. решается же она с помощью атрибутных грамматик, синтаксически управляемой трансляции и прочих далёких от формального алгебраического определения методик. есть, правда, категориальные грамматики, но даю правую руку на отсечение что ты с ними не работал что же касается представлений - мой тебе совет, попробуй подходить к вопросу методично и аккуратно. сейчас ты пишешь очень много глупостей. очень
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-05 00:41:31.366666
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
quote:
машина Тьюринга в данном контексте не причём - это всего лишь универсальный вычислитель Это не всего лишь универсальный вычеслитель, а мощный инструмент для доказательств. Я смотрю по немецки ты шпрехаешь, вот тебе ссылочка (постарайся перевести первый абзац) http://page.mi.fu-berlin.de/alt/vorlesungen/Prosem0708/TI_-_Vortrag_-_Marco_Traeger.pdf там и написанно, в каком классе лежит General Directional Top-Down/Bottom-Up Parsing, и Deterministic Directional Top-Down/Bottom-Up Parsing. И там же есть иерархия, где показанно, что PDA мощнее. quote:
да, LISP формальный язык. нет, синтаксис далеко не всех языков порождается CF-грамматикой. откуда ты вообще это взял? контрпример я тебе приводил - синтаксис C++ порождается CS-грамматикой, поэтому построить для него BNF нельзя вот тебе ссылочка и объяснение для с++ http://books.google.de/books?id=XPdOBeqXeZMC&pg=PA55&lpg=PA55&dq=c%2B%2B++kontextfrei&source=bl&ots=PjfuOfDPR3&sig=ymgJzC8DC-0S1fk_deQnNTyCb7E&hl=de&ei=pId4Sr3sCoXqnAPijqWBBg&sa=X&oi=book_result&ct=result&resnum=6#v=onepage&q=&f=false quote:
во-первых, задача распознавания для языка, порождённого грамматикой типа 0 по Хомскому, алгоритмически неразрешима - именно в том смысле, что ни один универсальный вычилитель, эквивалентный машине Тьюринга, не способен её решить. во-вторых, фраза о существовании грамматик просто бессмысленна, комментировать не буду Я могу написать грамматику типа 0, для которой язык будет типа 3, так как в иерархии Хомского тип 3 часть типа 0. Алгоритмически неразрешимы языки типа 0. В чем бесмысленна фраза о существовании грамматик? quote:
нет, ты не угадал. я про грамматики конечного выбора - FC, Finite Choice, для которых добавляется ещё одно ограничение поверх регулярных грамматик - запрет на наличие нетерминала в правой части правила порождения (что делает подобную грамматику негенеративной). так, множество зарезервированных слов в языке программирования - типичный пример FC. ввёл четвёртый тип в иерархию не Хомский, однако в современной практике СS он активно используется так я тебе тогда еще 1 тип придумаю, в котором запрещу заменять нетерминальные символы пустым словом. Но DFA сможет распознавать слова этого языка. Мы говорим о иерархии Хомского, а не его модификацией. quote:
и это ещё не все сущетвующие формализмы; некоторые из них имеют сугубо академическую ценность, некоторые активно применяются в разработке. иерархией Хомского мир распознавания языков не ограничивается Заметь, все твои выше приведенные примеры лежат между типом 3 и типом 0 языков. Кто нибудь показал, что существует язык, для которого нельзя построить тип0 грамматику? quote:
это не "долго и муторно". это невозможно http://www.math.uni-wuppertal.de/~axel/skripte/oop/oopA.html#declaration quote:
из того, что между двумя языками существует изоморфизм (биекция, если тебе приятней это слово) следует только то, что можно построить обратимый транслятор. в реальной жизни это очень редко так - морфизмы получаются достаточно сложными, и ни в коем случае не обратимыми. опять же, можешь отстоять свою точку зрения путём построения изоморфизма между Scheme и IA-32 Мне долго тебе это объяснять. quote:
и бросай использовать умные слова, смысла которых не вполне понимаешь. Откуда тебе знать? quote:
что же касается представлений - мой тебе совет, попробуй подходить к вопросу методично и аккуратно. сейчас ты пишешь очень много глупостей. очень Без комментариев
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-06 00:08:07.276666
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
Денатурат, ну так как порешали, есть в Лиспе синтаксис? Что бы долго не думал: http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%81%D0%BF Видишь там есть раздел Синтаксис? P.S. Если бы его там небыло, то декларация типа ************************* (defun fibonacci (n *(loop repeat n for a = 1 b and and b 1 + then ( a b finaly (return a ************************* проконала (я изменил пример, который находится по тойже ссылке).
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-06 02:29:02.476666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: xxxGradxxx rgo, значит ты считаешь, что теоритическая информатика - филькина граммота? Ты наверное знаешь, что ЯП просто так не садятся и не пишут, а сначало его моделируют. Моделирование - это и есть часть теоритической информатики. quote:
Господа теоретики, вам самим-то не смешно заявлять такое? Вы на практике попробуйте найти эту биекцию Конечно есть эта биекция. Несущие множества одинаковы, принципы сложения и вычитания тоже одинаковы. quote:
Теория всегда исходит от предположения типа: допустим, что ситуация достаточно благоприятна Есть такой принцип доказательства в теории, называется доказательством от обратного.Допустим, что ситуация достаточно благоприятна и доказываешь, что ситуация не достаточно благоприятная. quote:
на практике приходится исходить из допущения, что как только мы выключим свет, то мало того, что изо всех щелей полезут тараканы, так ещё кто-нибудь вломится в окно Есть такое в практике и называется это не предсказуемостью. В компьютерных системах все предсказуемо, просто еще не совершенно, венной тому корявые руки. Как сказал бы Барт: blah-blah-blah… Шутка. Неудачная. Извините. Ты, по-моему, не пытаешься понять о чём я. Неужто ты действительно хоть на секунду можешь поверить, что я тут сидя и модерируя могу считать теоретическую информатику филькиной грамотой? Надеюсь, что нет. Так почему же ты позволяешь себе после этого исходить из этого предположения? /*Вопрос риторический, ответ я знаю, так что можно не отвечать вслух.*/ Я говорю о другом. Во-первых, о теории вообще. Не только об информатике. Там и фраза между прочим именно так и построена. А во-вторых, я говорю о другом. О том что теория всегда исходит из предположений, что всё достаточно благоприятно. Возьмём, например, геометрию. В ней предположения о благоприятности окружающего мира со времён Евклида принято назвать аксиомами. Сейчас геометрия раздел математики, которая мнит себя абстрактной, но когда-то она родилась в древнем египте как наука, позволяющая измерять длину забора и площадь участка ограждённую забором. Итак геометрия и реальная жизнь. Посмотрим на забор древнего египта. С точки зрения геометрии забор выглядит призмой, углы забора – вертикальные рёбра призмы, – это отрезки прямых, прямые же имеют нулевую толщину и ширину. Красота! Попробуем теперь сосчитать сколько краски понадобится, чтобы покрасить углы забора. Суммарная площадь боковых рёбер призмы равна нулю, но если мы возьмём 0 кубометров краски и пойдём красить, то подойдя поближе увидим, что угол забора – это отрезок не прямой, но бетонного столба, имеющего помимо длины ещё толщину и ширину. Фак. Придётся возвращаться, и искать другую теорию/модель/абстракцию для описания забора. Мы найдём нужную модель, найдём и нужное количество краски, но крася столбы вдруг заметим, что два столба стоят покосившись и наполовину выдернуты из земли проезжавшим мимо танком. И нам не хватит на эти столбы краски. Покрасив таким образом 100 заборов, мы станем умными и будем использовать стохастическую модель для описания реальности. Будем считать сколько краски нам надо согласно всем теориям вероятностей и заодно ещё прикидывать вероятную погрешность и брать с собой некоторый запас краски. Для того чтобы хранить все статистические данные нам понадобятся винчестеры, а чтобы их обрабатывать программы написанные программистами. Но вспышка на солнце зацепит процессор, который почему-то был в незакрытом системнике стоящем под открытым небом, всплеск радиации сменит состояние одному триггеру и в результате мы пойдём красить имея на 32 литра краски меньше чем надо. И так всегда. Любой теории/модели/абстракции рано или поздно приходит каюк. Я уверен, что тебе это известно и без меня. Твои практические выводы сделанные из теоретических изысканий противоречат реальности, это может означать одно из трёх: - ты потомок Эйнштейна. Это вряд ли, так как Эйнштейн, действовал несколько иначе, он исходил из практики, в которой были факты не вписывающиеся в теорию, и создал новую, куда вписались все факты. Ты делаешь ровно наоборот – пытаешься создать реальность, которая будет соответствовать теории. - теория неверна. Это опять вряд ли. - ты применяешь теорию не так, как подразумевали её создатели. Вот это, мне кажется наиболее "тёплым" предположением. Истина где-то рядом. Пилите Шура, пилите. © ps. Не могу не удержаться.quote:
ORIGINAL: xxxGradxxx В компьютерных системах все предсказуемо, просто еще не совершенно, венной тому корявые руки. Я бы может и пережил эту фразу молча, но слово "ещё" не позволяет мне это сделать. :D Вижу… Вижу я вечность, и вижу реальность в этой вечности… Несовершенство царит в этой реальности… Не могу сказать, почему оно там, виной ли тому корявые руки, или может ограниченность разума… Туман хаоса окружает время и не позволяет видеть мелкие детали. Но гнойная сыпь несовершенства чётко проступает на чреслах реальности, и тянется… тянется… тянется вплоть до точки где сходятся параллельные прямые, и даже немного дальше.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-06 11:42:36.063333
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
Есть что ответить, но нет времени. Еду на море, буду в понедельник.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-10 19:41:38.960000
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
Передумал что-либо писать. Спасибо за понимание! ЗЫ: нет смысла рассуждать здесь на эту тему
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-12 11:22:02.456666
|
|
|
DzumoHu4
Сообщений: 279
Оценки: 0
Присоединился: 2008-08-04 19:04:43.236666
|
Фу блин тупо развели !ФЛУД! на тему "У меня больше интелекта чем у тебя, Вишь как извилины пульсируют". Не по приколу же его придумали. Ассемблер на мой взгляд, язык для Единиц, Функция Вычисления CRC32 сумм на Асемблере занимает 10 строк, на Дельфи листинг на 3 страницы, на С по моему лист, или полтора. Ассемблер более Быстрый, Лаконичный и более Понятный компьютеру чем любой другой Высокоуровневый язык. Пример: Представьте себе что вы общаетесь с японцем через Google Translate(C++), Infran(Delphi) и прочие машинные переводчики, или вы поднапряглись и выучили Чистый Японский Язык(Asm). После этого стоит сравнивать? Кого лучше поймёт японец? Тебя или гугл транслейт. Всё БАСТА ТЕМА СЕБЯ ИСЧЕРПАЛА, сравнивать "Попу" с "Пальцем" тяжело, не умеешь по человечески какать, используй Транслейт, либо "Выковыревай".
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-12 21:49:19.066666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
ну что же, давай спокойно и по пунктам - во имя истины quote:
ORIGINAL: xxxGradxxx Это не всего лишь универсальный вычеслитель, а мощный инструмент для доказательств. Я смотрю по немецки ты шпрехаешь, вот тебе ссылочка (постарайся перевести первый абзац) http://page.mi.fu-berlin.de/alt/vorlesungen/Prosem0708/TI_-_Vortrag_-_Marco_Traeger.pdf там и написанно, в каком классе лежит General Directional Top-Down/Bottom-Up Parsing, и Deterministic Directional Top-Down/Bottom-Up Parsing. И там же есть иерархия, где показанно, что PDA мощнее. мощность распознавателя - не единственный критерий; есть такие вещи, как эффективность, удобство использования, наличие готовых реализаций (генераторов). у PDA (как и у любого другого универсального средства) есть рад существенных недостатков. основные из них: 1. перед построением PDA грамматика должна быть приведена к нормальной форме Грейбаха (Greibach Normal Form, GNF); несмотря на то, что любая CF-грамматика, не порождающая пустую строку, может быть приведена к GNF, на практике всегда удобней работать с исходной грамматикой, избегая дополнительных преобразований (особенно если исходная грамматика подвержена изменениям) 2. PDA является недетирминированным распознавателем: в процессе распознавания произвольной грамматики будут возникать разветвления, принятие решений по которым требует дополнительных методов анализа. несмотря на существование многочисленных механизмов построения детерминированного PDA (DPDA), все они существенно ограничивают область применения PDA, не давая существенных преимущест перед более специализированными распознавателями 3. существуют промышленные генераторы LL(1), LALR, и PEG-распознавателей, работающие за линейное время. в случае, если выбор грамматики формального языка остаётся за разработчиком, лучшим решением является использование LL(1)-грамматики (как, к слову, поступил Вирт в своей Модуле-2): на основании исходной EBNF всегда можно сгенерировать эффективный детерминированный парсер в случае же, когда грамматика формального языка определяется внешними факторами, имеет смысл иметь наготове парсер, способный работать с контекстно-зависимыми грамматиками (вроде Parsec'а и его аналогов): область применения PDA ограничивается CF quote:
ORIGINAL: xxxGradxxx http://books.google.de/books?id=XPdOBeqXeZMC&pg=PA55&lpg=PA55&dq=c%2B%2B++kontextfrei&source=bl&ots=PjfuOfDPR3&sig=ymgJzC8DC-0S1fk_deQnNTyCb7E&hl=de&ei=pId4Sr3sCoXqnAPijqWBBg&sa=X&oi=book_result&ct=result&resnum=6#v=onepage&q=&f=false http://www.math.uni-wuppertal.de/~axel/skripte/oop/oopA.html#declaration C++ ist (wie die meisten höheren Programmiersprachen) eine kontextsensitive Sprache по обоим ссылкам немецким по чёрному умные люди пишут о том, что грамматика C++ (как и большинства современных языков программирования) является контекстно-зависимой. о грамматике по второй ссылке написано: во-первых, она является надмножеством над синтаксисом С++ (значит будут распознаны некорректные с точки зрения С++ конструкции), во-вторых она является контекстно-свободным приближением к грамматике С++ (значит не будут распознанны корректные с точки зрения С++ конструкции) quote:
ORIGINAL: xxxGradxxx Я могу написать грамматику типа 0, для которой язык будет типа 3, так как в иерархии Хомского тип 3 часть типа 0. Алгоритмически неразрешимы языки типа 0. В чем бесмысленна фраза о существовании грамматик? можешь, но это бессмысленно. ествественное направление - упрощение задачи; так, парсинг CS-грамматики в некоторых случаях может быть выполнен двумя парсерами CF-грамматик (за кубическое, а не экспоненциальное время). строить для языка более общую грамматику имеет смысл только с точки зрения теоретических изысканий quote:
ORIGINAL: xxxGradxxx так я тебе тогда еще 1 тип придумаю, в котором запрещу заменять нетерминальные символы пустым словом. Но DFA сможет распознавать слова этого языка. без этого типа грамматик иерархия Хомского будет неполной. впрочем, это уже чисто демагогический спор,- хочешь четыре грамматики по Хомскому, пусть будет четыре. мне, в общем-то, неважно quote:
ORIGINAL: xxxGradxxx Заметь, все твои выше приведенные примеры лежат между типом 3 и типом 0 языков. Кто нибудь показал, что существует язык, для которого нельзя построить тип0 грамматику? польза этих формализмов в том, что они позволяют строить эффективные парсеры для грамматик, выходящих за рамки CF. существенно более эффективные, чем те, которые в общем случае строятся с помощью CS-грамматики по Хомскому. вопрос про неограниченную грамматику смысла не имеет - на то она и неограниченная, вообще говоря, что любой язык под неё подгоняется quote:
ORIGINAL: xxxGradxxx Мне долго тебе это объяснять. можешь не объяснять, просто попробуй построить изоморфизм между Scheme и IA-32. можно даже о результатах не отчитываться, лишь бы самому на пользу пошло quote:
ORIGINAL: xxxGradxxx Откуда тебе знать? на основании твоих слов, естественно. много внимания к формализации, и при этом очень много фактических ошибок, ни одной из которых ты так и не признал quote:
ORIGINAL: xxxGradxxx Денатурат, ну так как порешали, есть в Лиспе синтаксис? с точки зрения построения распознавателя (recognizer) - да, твоя взяла. с точки зрения построения синтаксического анализатора - нет, по изложенным выше причинам. на практике первый пункт особого веса не имеет, ибо грамматика весьма простая; второй же является ключевым моментом в вопросе реализации метапрограммирования quote:
ORIGINAL: VaZoNeZ В общем, верь что ты лучший)) мне не нужно ни во что верить. моё дело - беспристрастная оценка корректности высказываний, плюс лёгкий троллинг с целью расшевелить оппонента на подумать. "верить", "лучший" - это та самая терминология детского сада, которую (я надеюсь) все вы когда-нибудь перерастёте к слову, я никогда никого не оскорбляю безосновательно. если я говорю, что человек - идиот, значит так оно и есть. вот тебе пример, ежели сомневаешься: quote:
ORIGINAL:DzumoHu4 Ассемблер на мой взгляд, язык для Единиц вот это - идиот. клинический надеюсь, данный ответ не полужит толчком к очередному витку обсуждения: знания нужны не для того, чтобы понтоваться на форумах, а для того, чтобы применять их в реальной жизни если есть вопросы или замечания к моим словам - с удовольствием на них отвечу, если есть желание продолжить гнуть пальцы - увольте, уж больно утомительное это занятие
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-12 22:34:13.790000
|
|
|
DzumoHu4
Сообщений: 279
Оценки: 0
Присоединился: 2008-08-04 19:04:43.236666
|
Что и говорить, убогий флудер.( З.ыч Вроде раньше такого не было, может у него акк увели?:D
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-15 15:25:59.783333
|
|
|
xxxGradxxx
Сообщений: 40
Оценки: 0
Присоединился: 2007-02-24 01:22:33.600000
|
quote:
мощность распознавателя - не единственный критерий; есть такие вещи, как эффективность, удобство использования, наличие готовых реализаций (генераторов). у PDA (как и у любого другого универсального средства) есть рад существенных недостатков Это единственный и главный критерий. Все что ты строишь автоматами слабее чем PDA ты можешь это построить с PDA, но не все то, что ты можешь построить с PDA, можешь построить с любым автоматом слабее чем PDA (простые истины). Такое ощущение, что ты черпаешь инфу с википедии и чтобы показаться умным пишишь это все сюда. Не надо мне рассказывать как работает PDA, я с ними немало работал. quote:
по обоим ссылкам немецким по чёрному умные люди … http://books.google.de/books?id=XPdOBeqXeZMC&pg=PA55&lpg=PA55&dq=c%2B%2B++kontextfrei&source=bl&ots=PjfuOfDPR3&sig=ymgJzC8DC-0S1fk_deQnNTyCb7E&hl=de&ei=pId4Sr3sCoXqnAPijqWBBg&sa=X&oi=book_result&ct=result&resnum=6#v=onepage&q=&f=false "Programmiersprachen basieren üblicherweise auf kontextfreien Grammatiken, da diese eine guten Kompromiss aus Mächtigkeit der Sprache und Schnelligkeit der Analyse bieten. Meist können allerdings nicht alle Konzepte einer Programmiersprache durch kontextfreie Sprachen beschrieben werden (beispielweise Typverträglichkeit, Überprüfung der Anzahl der Parameter in einem Funktionsaufruf). Statt hierfür den Schritt zu einer komplexeren kontext-sensitiven Grammatik zu vollziehen, behilft man sich in solchen Fällen jedoch lieber mit einigen expliziten Zusatzregeln." Перевод: Языки программирования базируются в основном на CF грамматиках, так как они дают хороший компромисс между величием языка и быстродействие анализа. В большенстве случаев невозможно описать все концепты языка программирования CF языком (например соотношение типов, проверка числа параметров функции в шапке).Вместо того, чтобы делать шаг к наиболее сложной CS грамматике, обходятся в таких случаях лучше некоторыми дополнительными условиями quote:
http://www.math.uni-wuppertal.de/~axel/skripte/oop/oopA.html#declaration "Die hier aufgeführte kontextfreie Grammatik entspricht…" Показанная здесь CF грамматика… "C++ ist (wie die meisten höheren Programmiersprachen) eine kontextsensitive Sprache, so daß zu der hier angegebenen kontextfreien Grammatik kontextsensitive Zusätze erforderlich sind" с++ (как и многие языки программирование высокого уровня) CS язык, так как к ниже приведенной CF грамматике некоторые CS дополнения необходимы. У каждого своя точка зрения, например по первой ссылке автор считает, что эти некоторые дополнения не позволяют называть язык CS языком. Вторую ссылку я тебе дал, на твое утверждение, что нельзя построить к с++ CF грамматику quote:
quote: ORIGINAL: xxxGradxxx Я могу написать грамматику типа 0, для которой язык будет типа 3, так как в иерархии Хомского тип 3 часть типа 0. Алгоритмически неразрешимы языки типа 0. В чем бесмысленна фраза о существовании грамматик? можешь, но это бессмысленно. ествественное направление - упрощение задачи; так, парсинг CS-грамматики в некоторых случаях может быть выполнен двумя парсерами CF-грамматик (за кубическое, а не экспоненциальное время). строить для языка более общую грамматику имеет смысл только с точки зрения теоретических изысканий Это я тебе написал не для того, чтобы ты рассуждал на тему, "есть ли смысл строить Typ0 грамматику для Typ3 языка", а для того чтобы показать тебе, что ты ниуя не знаешь о иерархии и пытаешься о ней рассуждать с помощью википедии. Твои изречения типа: quote:
RE: актуальность применения языка ассемблера в современ… - 04.08.2009 17:29:59 во-первых, задача распознавания для языка, порождённого грамматикой типа 0 по Хомскому, алгоритмически неразрешима - именно в том смысле, что ни один универсальный вычилитель, эквивалентный машине Тьюринга, не способен её решить. во-вторых, фраза о существовании грамматик просто бессмысленна, комментировать не буду Человек, занимавшийся этой темой не допустит себе такой ошибки сказать, что "задача распознавания для языка, порождённого грамматикой типа 0 по Хомскому, алгоритмически неразрешима". Правельно сказать "задача распознавания для языков типа 0 по Хомскому, алгоритмически неразрешима". Поэтому я тебе и привел пример, что грамматикой типа0 можно построить язык типа 3, а тип3 язык алгоритмически разрешим. quote:
с точки зрения построения распознавателя (recognizer) - да, твоя взяла. с точки зрения построения синтаксического анализатора - нет, по изложенным выше причинам. на практике первый пункт особого веса не имеет, ибо грамматика весьма простая; второй же является ключевым моментом в вопросе реализации метапрограммирования есть Синтаксис?__|__recognizer?____OR____ синтаксический анализатор? _____true_______ |_____true_______true___________true _____true_______|______true______true___________false _____true_______|______false______true___________true _____false______|______false______false___________false на практике первый пункт особого веса не имеет, ибо грамматика весьма простая Это ты сам так порешал? quote:
если я говорю, что человек - идиот, значит так оно и есть Очень приятно, царь (ржу немогу). Ты сильно много на себя берешь. quote:
вот это - идиот. клинический Идиот - это ты! А он прав, на ассемблере ты можешь написать все (вопрос надо ли), что ты можешь написать на любом др. ЯП, но не наоборот.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-17 19:23:24.270000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
увы, диалога не получилось. тебя можно (и стоило бы) показательно выпороть, однако ты так тщательно оберегаешь собственное невежество, что становится элементарно противно о чём-либо говорить. я, признаться, совершил ошибку, излишне высоко оценив твои умственные способности,- надо было доверять первому впечатлению живи себе и дальше в мире нативных кодов, регистровых машин, CF-языков, беспросветного PDA и табличных распознавателей с экспоненциальной сложностью; в мире без AST и вообще какого-либо IR в компиляторах, без грамматик конечного выбора, без генераторов лексеров, парсеров и кодогенераторов. и заодно построй изоморфизм между Scheme и IA-32 - или, если вдруг Scheme тебя чем-то пугает,- между тем же C и IA-32; иными словами - компилятор, которых работал бы в обе стороны. это ведь элементарно - построить изоморфизм между инициальными алгебрами. особенно если владеешь таким универсальным и мощным инструментом, как PDA
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-17 19:38:54.270000
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
quote:
ORIGINAL: Denaturat живи себе и дальше в мире нативных кодов, регистровых машин, CF-языков, беспросветного PDA и табличных распознавателей с экспоненциальной сложностью; в мире без AST и вообще какого-либо IR в компиляторах, без грамматик конечного выбора, без генераторов лексеров, парсеров и кодогенераторов. и заодно построй изоморфизм между Scheme и IA-32 - или, если вдруг Scheme тебя чем-то пугает,- между тем же C и IA-32; иными словами - компилятор, которых работал бы в обе стороны. это ведь элементарно - построить изоморфизм между инициальными алгебрами. особенно если владеешь таким универсальным и мощным инструментом, как PDA ОФФТОП: – Папа, а почему, когда яблоко откусишь, оно делается коричневым? – Дело в том, сынок, что в яблоке имеются различные химические вещества. Одно из них – железо. Так вот, когда железо вступает с кислородом, находящимся в воздухе, в химическую реакцию, получается окисление. В результате образуется вещество, которое и окрашивает яблоко в коричневый цвет. – Папа, а с кем ты сейчас разговаривал?
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-28 15:26:30.716666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
[sm=offtopic.gif] эх… а топик так и не усох до сих пор. я вот вернулся и прочитал что вы там понаписали… распознаватели какие то… очевидно, никто из собравшихся тут гениев-теоретиков ни разу в жизни не испытывал необходимости сделать качественно и быстро работающую вещь.[sm=bw.gif]] нельзя всё мерять мерками экономии драгоценнейших сил программиста. хакеры блин:'( зы. мне вот последнее время, когда я пытаюсь разобраться с какой-нибудь хитро закрученой хренью хочется всех теоретиков которые навыдумывали эту лажу перестрелять с дробовика нафик:D нету у мя дробовика, блин[:(]
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-30 16:30:09.036666
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Ты компилятор пробовал делать? Хакер - практик, my ass…
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-30 17:11:40.456666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
пробовал и делал даже. никто и не говорил что надо прям везде юзать асм:) quote:
ORIGINAL: redsh испытывал необходимости сделать качественно и быстро работающую вещь.[sm=bw.gif]] нельзя всё мерять мерками экономии драгоценнейших сил программиста
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-30 17:42:07
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Я о претензиях к "теоретикам". Обсуждались грамотные методы трансляции. В обсуждении нет почти compuning-science. Для нормального программиста, как и любого инженера, математика - один из основных инструментов анализа. Или предлагаешь вместо пользования КА и регулярных выражений взад-назад по тексту бегать? ;-/ А любая инженерная деятельность - эффективное создание эффективных решений (это по теме топика). Игры подростков в расчет не берем. 8)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-30 19:02:35.886666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
quote:
ORIGINAL: linuxoid Я о претензиях к "теоретикам". Обсуждались грамотные методы трансляции. В обсуждении нет почти compuning-science. Для нормального программиста, как и любого инженера, математика - один из основных инструментов анализа. Или предлагаешь вместо пользования КА и регулярных выражений взад-назад по тексту бегать? ;-/ А любая инженерная деятельность - эффективное создание эффективных решений (это по теме топика). Игры подростков в расчет не берем. 8) ну тут не поспоришь. просто некоторые люди оч любят орать о том, какой си "небезопасный": насколько вредна работа с "голыми" указателями и насколько ужасны последствия переполнения значения переменной ну и т.п, насколько удобна объектная модель (полный аналог которой, кстати, легко реализуется средствами стандартного си), и потому ужасно хвалят всякие обероны, лиспы, дельфи и т.п. (как я понимаю, все ваши рассуждения о грамотных методах трансляции сводятся к этому). при этом, если удосужиться немного подумать то все эти доводы не выдерживают никакой критики. 1) например, ну обнаружила rtl переполнение, выкинула эксепшн - и что толку? всё равно программер исключение не обработает, и обработчик по дефолту просто завершит прогу. а если программер учтёт возможности переполнения, то что ему мешает сделать тоже самое на обычном си. в результате мы имеем rtl, которая ничего полезного не делает, а только тормозит прогу, а вы её так хвалите… (примерно о том же писал Крис в хакере про лишниие проверки, не помню уж какой номер). 2) ну или вот пример - типа, программер не учёл нулевой указатель, прога вылетела (типичная ошибка для си). неужели если программер на паскале не учтёт аналогичной ошибки, прога продолжит работать стабильно и безошибочно. 3) ещё вот пример про объектную модель. к примеру, у нас есть класс, внутри которого заинкапсулирован метод, который захватывает картинку и ложит в файл. а к примеру мне надо не сохранить картинку в файл, а приаттачить к письму (пример из собственной практики). в результате я вынужден ставить хук на WriteFile и вообще, плясать с бубном не по детски. или разбираться с классом (учитывая, кстати, то, что код на объектном языке весит в 10 раз больше, чем на нормальном). для сравнения, если бы это была обычная сишная либа, я бы её без труда подредактировал (что обычно авторы либ учитывают, в отличии от "приплюснутых" программеров, старающихся всё заинкапсулировать). людей непонимающих такие простые вещи я и называю теоретиками:) математики мя вообще, мало волнуют, хотя не спорю, они изобрели много хорошего для нашего дела (быстрое преобразование Фурье, к примеру). но в основном занимаются вредительством и критикой хороших вещей…
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-30 20:52:23.050000
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Камрад, разделяй абзацы и начинай предложения с большой буквы, читать очень неудобно. Чистый Си - действительно небезопасный, и нефиг тут! :) 1), 2) http://www.inr.ac.ru/~info21/blackbox/disciplina/arr_bounds_checks.htm. А отлов RTL всяких ошибок позволяет их быстро обнаружить и исправить. 3) Конечно, сложно заочно понять, что у тебя там было, но осторожно выдвину гипотезу, что программа была неудачно спроектирована / класс выбран неподходящий. И не надо наезжать на ОО языки :). Во-первых, часто ООП пихают куда не надо. Во-вторых, давай не брать в расчет корявые языки с неудачным дизайном вроде Си++. Не раздувают они код, но предлагают адекватные задачи средства. В этом контексте слово "теоретики" звучит неуместно. А о математиках у тебя странное представление… Кстати, они есть прикладные и теоретики. Последние часто клоуны, занимаются вещами в себе 8). Но мы не о них. :)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 00:41:59.193333
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
quote:
Чистый Си - действительно небезопасный, и нефиг тут! :) Для того, чтобы кодить на Си нужны определённые навыки. К примеру, если сравнивать Си с каким-нибудь "правильным" языком (с паскалем, например - не люблю я его:)), то Си - это аналог реактивного истребителя, а паскаль - инвалидной коляски. Разумеется с точки зрения обычного, неподготовленного чела летать на Си небезопасно. Но если ты с лёгкостью оперируешь трёх и четырёхмерными указателями, если правильный и безопасный код генерируется прямо у тебе в голове и почти телепатически передаётся в комп, ты будешь любить Си, а один вид паскаля будет навевать смертельную тоску. Лично мне приятнее стремиться именно к этому, а не усовершенствовать каляски (ибо сколько их не усовершенствуй, суть не меняется). Немножко более формально эту мысль можно выразить так: 1) Си потенциально безопаснее всех "правильных" языков. Причина в том, что каждый из "правильных" языков таскает за собой здоровенную RTL, которая сама по себе является источником багов. Короче, надёжность языка равна надёжности RTL. А Си - это чистая платформа, на которой можно возвести всё что угодно. И надёжность твоего кода будет зависеть исключительно от твоей аккуратности, и от умения грамотно использовать средства языка. 2) Си интуитивно понятен, то есть "программировать на Си" быстро переходит в "думать на Си". Если ты изначально приучен писать стабильный код (перед использованием, проверять указатели на NULL, следить за выделением и освобождением памяти и т.д.), то у тебя никогда не будет проблем с безопасностью кода, поскольку в голове автоматически генерируется правильный код, со всеми необходимыми проверками. Хотя, к сожалению, многие люди сознательно подавляют желание вставить проверку, мотивируя его тем, что "тут такого значения теоретически быть не может". А потом, конечно же, пропускают её в критичекском месте (человеческая психология), и возникают access violation'ы, утечки памяти и вопли о небезопасности:) К сожалению, я не могу доказать это полностью логически, ибо с точки зрения формальной логики одинаково успешно можно кодить хоть на дельфи, тьюринговском асме, хоть на брейн факе, да вообще хоть на чём… Но на мой взгляд, язык, в первую очередь должен отвечать требованиям кодера (человека). Ну и желательно, чтобы кодер, прогая на нём приобретал опыт, а не "жирную" лень. quote:
http://www.inr.ac.ru/~info21/blackbox/disciplina/arr_bounds_checks.htm не открывается блин:( ошибка 404… quote:
Последние часто клоуны, занимаются вещами в себе 8). полностью согласен[sm=ay.gif]
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 01:38:12.556666
|
|
|
kreol
Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
|
quote:
ORIGINAL: redsh Для того, чтобы кодить на Си нужны определённые навыки. К примеру, если сравнивать Си с каким-нибудь "правильным" языком (с паскалем, например - не люблю я его:)), то Си - это аналог реактивного истребителя, а паскаль - инвалидной коляски… Поржал. Теперь рассказывай про проблему (с) Есть претензии к мощности языка? В студию. Только сразу линейку, по которой будем мерять разницу между "касялками" и "истребителями" введи, а то по моей линейке каляской является как раз таки Си. quote:
ORIGINAL: redsh Причина в том, что каждый из "правильных" языков таскает за собой здоровенную RTL, которая сама по себе является источником багов. Что такое RTL и почему ты думаешь, что он бажный? quote:
А Си - это чистая платформа, на которой можно возвести всё что угодно. Ну тогда Java - тоже чистая платформа. Читстая JVM. И заметь, у неё есть одно большое преимущество, о котором ты вообще, видимо, предпочитаешь не думать, - переносимость. quote:
И надёжность твоего кода будет зависеть исключительно от твоей аккуратности Диспетчеров в аэропортах приучают быть сверхаккуратными, причём там потенциальная ошибка может погубить десятки человеческих жизней, так что все понимают, что им нужно быть ооочень аккуратными. Тем не менее человеческий фактор был, есть и будет самой распространённой причиной аварий и катастроф. quote:
Си интуитивно понятен Ага, особенно синтаксис ну просто идеал интуитивного понимания. Дальше совсем бред, так что без комментариев. quote:
Хотя, к сожалению, многие люди сознательно подавляют желание вставить проверку, мотивируя его тем, что "тут такого значения теоретически быть не может". Ты сообщение назад говорил, что лишние проверки нужно убирать. Доктор, ну вы определитесь. И вообще, давай если что-нибудь хочешь написать, то сначала придумай этому обоснование, а потом уже выкидывай на форум, а не своди все разговоры к тому, что "Си - это круто, и понятно, и ваще, а Паскаль - говно, кака и кодить на нём нельзя, потому что вот." Попробуй вместо этого "вот" подставить что-нибудь хотя бы отдалённо напоминающее здравый смысл. И размер твоих сообщений сразу таааак уменьшится ;)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 09:46:12.023333
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
quote:
Поржал. Теперь рассказывай про проблему молодец. теперь советую хотя бы попробовать понять. quote:
Есть претензии к мощности языка? эх. ну это же понятно. паскаль - шаблонный, т.е. конструкции представляют что-то типа for <int_var> := <int_start> to <int_end> do по сути всё что тут есть - это <intvar>, <int_start> и <int_end>. а всё остальное - это бесполезный балласт и украшательства. в общем безобразие и шаблонное мышление. например, в турбо паскале был такой баг - если последней командой (перед end.) стоит readln, то работает он только если после него нет ';', одно лишь это говорит о том, что транслятор с паскаля "тупее", шаблоннее и прямолинейнее даже парсера ини файлов. для сравнения - конструкции на Си полностью рекурсивны (вложены), универсальны и логичны. (читай трюки от Криса). в паскале операторы := , + и div работают совершенно по разному и к логике каждого из них надо привыкать (она совсем не очевидна), каждая фигень работает по своему. ну про указатели я вообще молчу. реализованы они так, что чёрт ногу сломит. quote:
Что такое RTL и почему ты думаешь, что он бажный? та самая библиотека, которая позволяет вам так лихо складывать строки плюсом, генерировать конструкторы по умолчанию, отлавливать исключения и вытворять множество подобных "чудес". в общем, вставляющая в машинный код такое, о чём программер даже не подозревает. сколько не юзал "правильных" языков везде в этой либе были какие-нибудь косяки. хотя тут дело даже не в том, насколько либа бажная, а в том, что фактически язык говорит программеру что делать а не наоборот. quote:
Ты сообщение назад говорил, что лишние проверки нужно убирать. quote:
например, ну обнаружила rtl переполнение, выкинула эксепшн - и что толку? всё равно программер исключение не обработает, и обработчик по дефолту просто завершит прогу. а если программер учтёт возможности переполнения, то что ему мешает сделать тоже самое на обычном си. читай внимательнее:) quote:
Это вовсе не призыв к отказу от проверок на корректность выделения памяти. Это просто констатация факта, что если память закончилась, то ситуация опаньки и проверка ее не исправляет, а только усугубляет. Если мы действительно хотим принять такой фактор риска во внимание, необходимо предусмотреть обработку ситуации © http://www.xakep.ru/magazine/xa/097/144/1.asp quote:
Ага, особенно синтаксис ну просто идеал интуитивного понимания. ну не совсем идеал к сожалению, но лучше ничего не видел, причём отрыв очень существенный (о асме не говорим, конечно, только высокоуровневое). в любом случае, у разработчиков Си получилось гораздо лучше, чем можно было в то время ожидать. серьёзно.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 09:51:29.760000
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
quote:
ORIGINAL: kreol Ты сообщение назад говорил, что лишние проверки нужно убирать. Доктор, ну вы определитесь. И вообще, давай если что-нибудь хочешь написать, то сначала придумай этому обоснование, а потом уже выкидывай на форум, а не своди все разговоры к тому, что "Си - это круто, и понятно, и ваще, а Паскаль - говно, кака и кодить на нём нельзя, потому что вот." Попробуй вместо этого "вот" подставить что-нибудь хотя бы отдалённо напоминающее здравый смысл. И размер твоих сообщений сразу таааак уменьшится ;) Вот-вот! Присоединяюсь! Похоже, кадр не серьезные задачи решает, а на си дрочит. [Обсчитывает RTL Компонентного Паскаля] National , Kernel, Files, HostFiles, StdLoader - 73,71 КБ. И про баги (и даже "фичи" :) ) в этих модулях я не слышал.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 09:57:33.480000
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Регулярность синтаксиса - большой плюс для компилятора языка и восприятия листингов. Их кстати больше читают, чем пишут. И если тебе не только на Си дрочить придется, вот: http://www.inr.ac.ru/~info21/blackbox/disciplina/welcome.html. Оттуда: quote:
«… я ничего обидного про свободное искусство открытого общества сказать не хочу, я к нему со всей душой. Поэтому извиняюсь, если нижеследующая метафора покажется обидной: 'Функция всех структур — сохранять форму и служить опорой — требует, по определению, в известной мере пожертвовать свободой. Можно привести такой пример: червяк может согнуть свое тело в любом месте, где пожелает, в то время как мы, люди, можем совершать движения только в суставах. Но мы можем выпрямиться, встать на ноги - а червяк не может' (Конрад Лоренц). Зато червяк может саму способность встать на ноги объявить несерьезным делом и дорогой к рабству. …» Владимир Шинкарев. «Митьковские пляски. Краткое руководство для хореографических кружков художественной самодеятельности»
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 10:04:12.010000
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
quote:
Похоже, кадр не серьезные задачи решает, а на си дрочит. quote:
«… я ничего обидного про свободное искусство открытого общества сказать не хочу, я к нему со всей душой. Поэтому извиняюсь, если нижеследующая метафора покажется обидной: 'Функция всех структур — сохранять форму и служить опорой — требует, по определению, в известной мере пожертвовать свободой. Можно привести такой пример: червяк может согнуть свое тело в любом месте, где пожелает, в то время как мы, люди, можем совершать движения только в суставах. Но мы можем выпрямиться, встать на ноги - а червяк не может' (Конрад Лоренц). Зато червяк может саму способность встать на ноги объявить несерьезным делом и дорогой к рабству. …» Владимир Шинкарев. «Митьковские пляски. Краткое руководство для хореографических кружков художественной самодеятельности» отвратительно:'( оба утверждения даже ничего общего не имеют со здравым смыслом. думали бы хоть сначала…
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 16:03:50.570000
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Поясни, раскройся, здравомыслящий ты наш.
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 17:41:48.126666
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
"Функция всех структур — сохранять форму и служить опорой — требует, по определению, в известной мере пожертвовать свободой." на Си мона сделать всё что угодно. то есть любые фичи, которые доступны в любом другом языке. хочешь ограничивать - на здоровье. не хочешь юзать вложенные операторы - никто не заставляет. причём здесь червяки? вот я и говорю, думал бы прежде чем писать…
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 17:47:28.350000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Блин… Вы скатились до спора, что лучше паскаль или C? Не стыдно так боянить? redsh, ты зря туда полез. Тебе уже всё рассказали про "опасность" языка C. Тебе уже начали доказывать что C непереносимый язык и привязан к платформе. Щаз тебе начнут втирать про богоподобного Вирта, в одиночку пишущего самые крутые операционные системы причём сразу на десяти разных оберонах… Если ты выстоишь, то тебя засыпят названиями всяких прочих паскалей, которые Вирт успел насочинять в течение своей жизни. Против этого устоять шансов у тебя ровно ноль: ты прёшь напролом, а холивар – это тонкая штука, в нём надо считать на несколько ходов вперёд. Единственная твоя надежда – это linuxoid, который начинает терять самообладание. Но не надо раскатывать губы, я верю в kreol'а. Твоим единственным шансом было, незметно, исподволь, вести беседу к… Ладно, не буду раскрывать проффесиональные секреты xD Давайте лучше резведём холивар на тему асм vs. ООП – я ещё недостаточно отлакировал свои аргументы против ООП, и я б с громадным удовольствием понаблюдал бы ещё разок за тактикой защитников ООП. 2linuxoid ты меня озадачил… Твоё отношение к C никак не вяжется с ником linuxoid. Linuxoid – это человек почитающий unix, и традиции unix. В частности понимающий все прелести C. Как можно быть linuxoid'ом и плевать в сторону C? В сторону разработчиков использующих C? В Столлмана, который призывал всех (да и по сей день вроде как призывает) использовать C для GNU разработок. В Торвальдса, который чётко и однозначно высказывался по поводу выбора C в качестве языка для разработки linux. По-моему это прерогатива вендусятников, пользоваться программой и одновременно соревноваться в том, кто более крупной/зелёной соплёй плюнет в разработчика этой программы. Не, ну ладно бы ты тут демонстрировал unix идеи изложенные на паскале – это было бы оригинально и любопытно. По-моему они просто не совместимы в философском смысле и могут безболезненно существовать лишь на определённой дистанции друг от друга. А совмещение несовместимого всегда вызывает интерес. Дык, ты просто сверкаешь на C красными глазами. Точно так же как redsh сверкает красными глазами на паскаль. Твоя позиция, по-моему, даже ещё более красноглаза чем его – ты явно быстрее движешся к прямым оскорблениям собеседников чем оппонент. Но, как бы там не было, позиция redsh мне знакома, она нисколько не оригинальна, я знаю её наизусть и мог б вести её гораздо лучше чем redsh, было б желание. А вот твоя позиция озадачивает. ps. Любопытно но факт. Обсуждение актуальности ассемблера, по каким-то загадочным причинам тонет в обсуждении теории компиляторов, потом, едва выплыв оттуда, тонет в проблеме C vs Pascal (сразу после того, как не удалось утонуть в C vs C++)… redsh, ты не думаешь, что это неплохой показатель актуальности asm'а?
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 18:18:32.823333
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
Да паскаль так популярен потому что в школе учат. Не учили бы, так все бы про него уже давно забыли. А на Асме, думаю, уже мало кто кодит серьёзно:( Так, лоадер какой-нибудь написать, а дальше на Си. Даже в низкопроизводительной эмбедщине. Хотя, безусловно, Асм актуален. Вот например: http://obdev.at/developers/articles/00003.html . Мне прям тепло на душе стало, когда читал. Молодец мужык. Не то, что всякие задроты, старающиеся сделать самый оберонистый оберон:)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 18:37:52.370000
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Да, учиться вам и учиться, друзья. Эффективность результата и его достижение сильно зависит от применяемых инструментов. А многие ничего за рамками убогого мейнстрима не видят, но в технологических спорах не стезняются задвигать мега-тезисы. Это я вообще, не о конкретных участниках. Кстати, вспоминается понятие "туннельный кругозор". :) Про опасность си. А ничего, что по некоторым источникам, в больших системах при одинаковых условиях, там в 16 раз больше плотность багов, чем на оберонах? На сайте ЦЕРН можно где-то найти документ про это. Кстати, я си не с Паскалем (тот в 1980г устарел с созданием Модулы) сравниваю, а с оберонами. Но к Си у меня особых претензий нет - тот в определенных условиях и для определенных задач создавался. И неплохо помогал эти задачи решить. Но вот всюду с ним возиться спустя 40 лет - странно. Гораздо сильнее я не люблю си++ - бездумно мертвыйСтраус и К понамешали там теплого и мягкого - и получилась теплая и мягкая субстанция. И насмотрелся я, какую [consored] и по скольку времени на нем делают. Еще паскали компилятся быстро - это ускоряет процесс разработки-отладки. quote:
unix идеи изложенные на паскале ОС Excelsior, создана в новосибирском ВЦ СО АН СССР. Unix-система на Модуле-2. Вот здесь много всякого найдете. 2rgo: Я с линукса вырос, а ник остался. Оскорблять никого не хотел. Просто подколы по факту (и называния вещей своими именами) - надо некоторым самим думать, что пишут на публике. PS Мы тут вроде веселимся и жизни радуемся. Заодно и всякое интересное-полезное можем узнать. Кого что не устраивает? Уж и постебаться нельзя 8)
|
|
|
RE: актуальность применения языка ассемблера в современном мире - 2009-08-31 20:32:02.273333
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Я так понимаю, мы подходим к программистским вопросам с технической стороны, "популярность" и т. п. технологий отношения к делу не имеет. Хотя, это зависит от отрасли.
|
|
|
|
|