Языки программирования
Дело в том,что я изучил ассемблёр и решил сравнить код на ассемблёре и другие,и вот что уменя получилось:
(Вывод строки Hello,world!)
FASM-->
ORG 100h
push cs
pop ds
mov ah,9
mov dx,text
int 21h
int 20h
text db 'Hello,world!$'
<--
Размер:24 байта
Asic-->
Print "Hello,world!"
<--
Размер:360 байт
C++(Tubo 3.5)-->
#include <stdio.h>
main(){
printf("Hello,world!");
return 0;
}
<--
Размер:(ужас)8,47 kb!
Delphi(7.0,console)-->
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
Write('Hello,world!');
end.
<--
Размер:(это вообще)40kb
Может эти размеры не так и ужасны,но посмотрите какой отрыв между ассемблёром и языками высого уровня,и это я ещё не программу написал,как говорится чем дальше-тем похлеще...
Я считаю,что вообще нельзя использовать языки высокого прогр.,это же полный атас!
Например:Я написал прогу для чтения тестов,на Делфи она у меня заняла 1,2 мег,а потом на асме:120 кб(от размера сообственно и скорость!)...Мда ,большая разница..
Что уже говорить о таких как:Word,Excel,Photoshop и т.д
В принципе ничего страшного нет,но если подумать-это же деградация!
Вот были времена ДОСа,когда большинство прог писали на АСМЕ-там и скорость и размер,а щас?
Все программисты(не буду уж так резко)обленились
писать на АСМЕ,все пишут на Делфи и т.д
Я считаю что АСМ самый лучший(и сложный)...
Кто думает так или иначе?
Да, обленились. Очень многие считают ,что АСМ просто не нужен, вчерашний день, а это плохо.
Вобщем жаль, что нет варианта ПАС+АСМ :)
Да,пока нет хорошего компилятора Паса,будем надеятся...
Я думаю,что Ассемблёр все считают,что это только доступ к апаратуре :(
Но у Ассемблёра есть такие возможности...
Не,ну конечно-Паскаль тоже нормальный,но генерирует код он !@$%$^###%*&*(% (многовато)
Вот бы свой Пас сделать,идея такая:
Компилятор генерирует код на Пасе в ассамблёрный,ну а дальше вы знаете :D -я считаю,это неплохая идея!
Пока бы ты фотошоп на асме писал, конкуренты бы тебя взули даже с бейсиком :P
Просто Асм сделан для супер прогеров(и хакеров,кракеров,фрикеров,вроде всё)!
Всё-что пишут на Асме-великое...
А всё-кто пишут (как я называю)ГЕНЕРАТОРАМИ-ТРАНСФОРМАТОРАМИ-те ив правду ленивые,ну бейсиком-это ты загнул :D
Но разве трудность и скорость-это минусы,чтобы вообще на Асме не писать?
Попробуй на бэйсе сделай анти-дебагер,или поддержку MMX или сопроцессора...
Ассамблёр обладает НЕОГРАНИЧЕННЫМИ возможностями,а если простоту на это обменивать-то да...
Чем сложнее было писать прогу-тем она лучше,кто поспорит...
(з.ы хотя Ассамблёр существует с самого создание компьютеров)
А что, есть дебаггер для бейсика? Он же в псевдо-код компилит... :-?
Я имел ввиду АНТИДЕБАГЕР,типа какойто крякер хочет крякнуть твою прогу,открывает файл (дебагером)и Опа,ничего(могу дать код-если нужно)
Я имел ввиду АНТИДЕБАГЕР,типа какойто крякер хочет крякнуть твою прогу,открывает файл (дебагером)и Опа,ничего(могу дать код-если нужно)
Дык в том-то и прикол. Ты когда-нить открывал прогу, скомпиленную вижуал бейсиком в дебаггере? И много там можно понять? ;)
Такие сравнения уже проводились: http://lowlevel.h14.ru/cgi-bin/yabb/YaBB.cgi?board=other;action=display;num=1119538208
Это связано не столько с качеством оптимизации, сколько с тем фактом, что компиляторы ЯВУ добавляют в исполняемый файл много сервисной информации.
Это ты погорячился! У ассемблера одна область применения, у ЯВУ - другая.
Глупо писать на Delphi драйвер какого-либо устройства. Но и на ассемблере не разумно разрабатывать СУБД. Всё нужно использовать по назначению.
Такие программы реализуются большими коллективами программистов, где очень важную роль играет синхронизация написанного кода, т.е. объединение воедино разных модулей, написанных разными людьми.Причем, на это уходит порой больше времени, чем, собственно, на разработку. Насколько усложнилась бы задача при использовании ассемблера!! Это только первая причина.
Вторая: в больших программах используются сложные алгоритмы, реализация которых на ассемблере отнимет очень много времени. В том же PhotoShop-е реализовано огромное количество средств обработки изображения. Даже самые простые фильтры производят сложные математические расчеты. И каково все это писать на ассемблере, имея в распоряжении всего 4 регистра общего назначения и стек! Можно, конечно, использовать для хранения значений переменных ячейки памяти, но тогда теряется реентрабельность.
А выполнение арифметических операций (не говоря уж о тригонометрии)... очень неудобно пользоваться уродски реализованными инструкциями mul и div.
Третья причина: ассемблер не выгоден с экономической точки зрения. Разработка на ассемблере отнимает больше времени, а в бизнесе время - деньги.
Четвёртая причина: считается, что чем больше и медленнее программа, тем она круче, сложнее, навороченее и т.д. Клиент, отдающий за программу N сотен долларов, должен видеть, за что он платит!
Зато какой стимул для повышения производительности оборудования!
В чем-то ты прав. Современная логика такова: "Зачем напрягаться ассемблером, когда есть всякие визуал-бейсики, дот-неты, мфц и прочая ерунда??"
Кто думает так или иначе?
Это уже личные преференции каждого человека.
Компилятор генерирует код на Пасе в ассамблёрный,ну а дальше вы знаете -я считаю,это неплохая идея!
А толку? Получить бинарник сразу или с промежуточными этапами - что от этого изменится?
Так что мне кажется,что Асм быстрее всех вычисляет...
И вообще всё зависит от воли програмера,ведь один может алгоритмы написать на Асме,другому лень
ORG 100h
push cs
pop ds
mov ah,9
mov dx,text
int 21h
int 20h
text db 'Hello,world!$'
<--
Размер:24 байта
Небольшая оптимизация... вместо int 0x20 можно использовать инструкцию ret. Эффект тот же, а выйгрыш в объёме на один байт ;)
Размер:23 байта :D
Ну я думаю,Ассемблёр нужно знать полюбе!
Даже если на Паскале прогить...
Я думаю лучше использлвать систему:высокий язык+вставки ассемблёра=нормально...
Здесь пойдёт речь о компиляторах высокого уровня(Бэйсик,СИ++,Паскаль,и какже без такого-Делфи)...
хм... так мы говорим о компиляторах, средах разработки, или все таки о ЯПВУ?
Дело в том,что я изучил ассемблёр и решил сравнить код на ассемблёре и другие,и вот что
браво...
Я считаю,что вообще нельзя использовать языки высокого прогр.,это же полный атас!
может вы просто не умееште их использовать?
Например:Я написал прогу для чтения тестов,на Делфи она у меня заняла 1,2 мег,а потом на асме:120 кб(от размера сообственно и скорость!)...Мда ,большая разница..
Что уже говорить о таких как:Word,Excel,Photoshop и т.д
ну то что ВЫ написали, это еще не эталон. я вот не уверен, что вы напишете Photoshop на ассемблере и он я будет работать быстрее. если напишете вообще.
В принципе ничего страшного нет,но если подумать-это же деградация!
напротив, это прогресс.
Вот были времена ДОСа,когда большинство прог писали на АСМЕ-там и скорость и размер,а щас?
мда... а были времена, когда программирование осуществлялось путем физической перекоммутации проводов. это круто? я вас разочарую. уже во времена DOS большинство программ НЕ писалось на асме.
Все программисты(не буду уж так резко)обленились
писать на АСМЕ,все пишут на Делфи и т.д
Я считаю что АСМ самый лучший(и сложный)...
Кто думает так или иначе?
программисты не обленились. программисты используют наиболее целесообразные средства для конкретных задач.
Вы лично участвовали в сколько нибудь серьезном проекте, чтобы выдавать тут суждения космического масштаба и космической же глупости? я вот не могу себе представить, что наши программисты начнут писать вместо Delphi на ассемблере... какой-то проект возможно и завершат... но будут к тому времени безработными.
XMS? Extended Memory Specification. При чем тут это??
XMS? Extended Memory Specification. При чем тут это??
а еще XML, DLL и много других страшных слов :D
XMS? Extended Memory Specification. При чем тут это??
Казалось бы XMS тут ни при чем... XMS всегда ни при чем... задумайтесь над этим... :D
PS: Естественно, попадаются вещи которые лучше оформить в виде отдельных процедур на асме, но их ой как мало.
PS2: Делаем выводы.
Незнаю,как другим,но мне лично нравится Ассемблёр...
в данном случае речь идет не о том, что НРАВИТЬСЯ или не НРАВИТСЯ. я вот без ума от холодного оружия. но как бы виртуозно я не владел ножом, я никогда не пойду с ним против танка.
так и здесь. программируя для "души" - пишите на чем угодно. зарабатывая деньги - пишите на том, на чем хочет заказчик.
кроме того - очень многое зависит от владения инструментом. есть такая программа MHDD -профессиональная программа для работы с НЖМД на самом низком уровне. написана на FreePascal. делайте выводы...
Ну,Ассамблёр мощный язык(и сложный),как видите всем лень думать за процессор!
насчет мощности - это еще бабка надвое сказала. а про сложность - что сложного в ассемблере?
Да ничего особенного,но он труднее других языков!
Ну вот Holy War. Я когда-то также думал! :)
В чем он труднее??? Если им хорошо владеешь и прекрасно знаешь архитектуру ОС и компа в целом, то ни фига не труднее. Дело в том, что приходится писать руками (отладка и тестирование, чтобы это хорошо работало), что уже написано на ЯВУ. Это не трудность - это трудоемкость. Давайте различать понятия!
Просто для того чтобы писать на Асме, надо знать гораздо больше, чем для того чтобы писать на ЯВУ.
Просто для того чтобы писать на Асме, надо знать гораздо больше, чем для того чтобы писать на ЯВУ.
не больше. надо знать другое
Самый тяжелый ЯП - машинный код, имхо. асма - на порядок легче.
Что касается возможностей, то практичеки все яп имеют одинаковые возможности, если речь, не идет о яп типа HTML или XML.
яп типа HTML или XML.
Это не языки программирования, а языки разметки. Не стоит путать.
Самый тяжелый ЯП - машинный код
Машинный код - не язык вообще, это... машинный код...
Как отдельные фонемы и звуки не являются лингвистическим языком.
Об остальном обсуждаемом скромно промолчу. :)
Об остальном обсуждаемом скромно промолчу. :)
а чего? что с тобой? темка веселая, обычно ты не упускаешь случая пофлудить ;) утомили доморощенные пророки, несущие свет истины?
Машинный код - не язык вообще, это... машинный код...
кстати тут ты не совсем прав - машинный код тоже язык общения с машиной. аналог фонем - это скорее отдельные биты...
а чего? что с тобой? темка веселая, обычно ты не упускаешь случая пофлудить ;) утомили доморощенные пророки, несущие свет истины?
Да чего-то чувствую, калибр не тот... Не посилам тут мне аргументировать... :)
И к тому же автор топика прав... все из-за лени...
Вот для сравнения велосипед и автомобиль. Автомобиль как ни крути всегда тяжелее получается, дороже и прожорливей, а что такого может сделать, что не сделает велосипед (ну или пара-тройка тысяч велосипедов) ?
А сколько знаний и навыков требуется от велосипедиста! Держать равновесие, крутить руль и педали одновременно!
Не... велосипед это мощьное орудие, обладающее НЕОГРАНИЧЕННЫМИ возможностями. Попробуй на автомобиле прокатиться на одном колесе или проехать по перилам...
Да и вообще, чем сложнее проделать путь из точки А в точку Б, тем он (этот путь) лучше.
И к тому же автор топика прав... все из-за лени...
я когда то слышал легенды про системщиков, которые загрузочный код ОС вручную по памяти вбивали в загрузочные секторы... и я понимаю... хреновый из меня админ :)
Ладно,я не об этом,вообще,не могли чтоли создать,например-компилятор Паскаля из Пас ту Асм?А что?Компилятор Ассамблёра же меньше размер компилит...
И ещё Ассамблёр самый крутой,без него бы не сделали ваши СиСи++,Трубо Паскакаль и конечно же Бусик :)
Нет,правда,без Ассамблёра небыло б вообще ничего прогресивного...
А в ДОСе без Асма,как без...рук конечно
А всякие там СиСи и пакали-ненужная вещь!Они только код генерируют (и плохо),загружаются дольше и ещё там всякие дебаг информации(кто-то этим вообще пользуется)!
я когда то слышал легенды про системщиков, которые загрузочный код ОС вручную по памяти вбивали в загрузочные секторы... и я понимаю... хреновый из меня админ :)
Вбивали, вбивали. Это не легнды. Поверь, ежели она сволочь только с 5 раза начинала заводится (Электроника - 79 аналог pdp-1170) все выучишь. И коды загрузочных секторов и коды загрузки с перфоленты. Да и система команд у pdp была проще в запоминании. Лоичней там все было. Коды были разделены на типы команд (перемещения, управления и т.д. и по количесву байт. Одно - двух и трех байтовые.) Запоминать их было одно удовольствие. самое сложное смещение посчитать до адреса в 8-ичной системе. А так не очень сложно все это.
Компилятор Ассамблёра же меньше размер компилит...
Компилятор ассемблера вообще не производит оптимизацию кода: что ты написал, то и будет оттранслировано в машинные коды.
Компилятор ассемблера вообще не производит оптимизацию кода: что ты написал, то и будет оттранслировано в машинные коды.
Уверен? :)
А как на счет ассемблера AT&T ?
ещё там всякие дебаг информации(кто-то этим вообще пользуется)!
ГыГы, все, кто пишет что-то покруче хеллоуворд. Кто скажет хоть один серъезный проект написаный на асме?
Supervizor - ну и тасм умеет "оптимизировать" (JUMPS / SMART / че то я там еще забыл).
ну и тасм умеет "оптимизировать" (JUMPS / SMART / че то я там еще забыл).
Это смешная оптимизация по сравнению с оптимизацием того же GCC.
С чего вы думаете,что в этих компиляторах есть оптимизация?
Ты хочешь сказать, с чего я думаю, что в GCC есть оптимизация?