Delphi Опубликовано 26 апреля, 2007 Жалоба Поделиться Опубликовано 26 апреля, 2007 Недавно начал читать книгу про язык программирования С и наткнулся на то, что он являеться языком низшего уровня по типу ассемблера, в то время как с++, паскал, делфи... это идут уже языки высшего уровня. В связи с этим вопрос язык с являеться языком низшего уровня из-за того что может непосредственно работать с регистрами и стеком или какието другие причины? Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 26 апреля, 2007 Жалоба Поделиться Опубликовано 26 апреля, 2007 Delphi: ты читал старую книгу + не много не точно. Есть языки низкого, среднего и высокого уровня, + есть машинно-ориентированные языки. Язык С язык по сути МОЯ + НСВ ( я сократил). 7. Язык С и другие машинно-ориентированные языки. Осознание того, что программирование с использованием универсального языка, не отражающего особенности конкретного вычислительного оборудования, не дает возможности достичь предельной эффективности программ на этом оборудовании, привело к появлению так называемых машинно-ориентированных языков. Популярность таких языков зависит не только от распространенности оборудования, для которого они рассчитаны, но и от успешности выполненных с их помощью проектов. http://www.intuit.ru/department/se/progstyles/3/3.htmlДля написайния драйверов нужен С, Паскаль создан как обучающий язык вообщем надо бы источник давать где ты это прочёл, а то можно запутатся. Ссылка на комментарий Поделиться на другие сайты Поделиться
Delphi Опубликовано 26 апреля, 2007 Автор Жалоба Поделиться Опубликовано 26 апреля, 2007 Indomito ссылку на такое утверждение я поищю, тут ещё вспомнил в пользу С что в системе юникс(или ей подобных) с помощью С можно осуществлять чтение и запись на определенные участки жесткого диска, тоесть работа с секторами диска(ссылку на данный материал я тоже поищю) Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 26 апреля, 2007 Жалоба Поделиться Опубликовано 26 апреля, 2007 Delphi: .... с помощью С можно осуществлять чтение и запись на определенные участки жесткого диска, тоесть работа с секторами диска.... не обязательно С, можно и на бэйсике достаточно знать API, ну естественно я про винды говорю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Delphi Опубликовано 26 апреля, 2007 Автор Жалоба Поделиться Опубликовано 26 апреля, 2007 Delphi: не обязательно С, можно и на бэйсике достаточно знать API, ну естественно я про винды говорю. Ну если через API то да, но я так понял имелось ввиду, что стандартными средствами. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 апреля, 2007 Жалоба Поделиться Опубликовано 26 апреля, 2007 Delphi: В С нет команд для работы напрямую с секторами жесткого диска. Это вообще делается с помощью обращения к BIOS, которое может осуществляться двумя путями: с помощью ассемблерных вставок или, гораздо чаще, обращением к функциям заранее написанного на ассемблере или содержащего ассемблерные вставки модуля. Так можно делать в любой системе, и Unix, и Windows, и MS-DOS, это позволяют любые реализации и C, и C++, и Pascal, но все эти функции не входят в состав стандарта языка. Вообще, конечно, можно внутри ассемблерной вставки написать и команды прямого обращения к контроллеру жесткого диска, но причем тут C? В C гораздо больше различных операций и его типы данных ближе к представлению данных в компьютере. Он шел в направлении развития программирования от машинных кодов к простой записи алгоритмов. Pascal же шел в обратном направлении - от языка записи алгоритмов к машинным кодам. Но со временем оба языка много переняли друг от друга. Вообще в статье многое неверно. Язык С, по статье, появился в результате осознания неэффективности универсальных языков, но при этом до них. А фраза "Заметными объектными языками стали Turbo Pascal версий с 5.5 до 7.0 и Object Pascal системы Delphi." показывает, что автор просто не знает, о чем пишет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Delphi Опубликовано 27 апреля, 2007 Автор Жалоба Поделиться Опубликовано 27 апреля, 2007 Язык С, по статье, появился в результате осознания неэффективности универсальных языков, но при этом до них. А фраза "Заметными объектными языками стали Turbo Pascal версий с 5.5 до 7.0 и Object Pascal системы Delphi." показывает, что автор просто не знает, о чем пишет. Когда читал первый раз фразу как-то пропустил. В принципе да С на сколько я помню разрабатывался из-за того, что язык язык В на котором планировалось вести разработку юникса немного неудовлетворял требованиям, так как в нем был всего один тип данных. Появление варианта системы, написанного не на языке ассемблера, было заметным продвижением. Однако сам язык Би во многом не удовлетворял разработчиков. Подобно языку BCPL язык Би был бестиповым, в нем поддерживался только один тип данных, соответствующий машинному слову. Другие типы данных эмулировались библиотекой функций. Деннис Ритчи, который всегда увлекался языками программирования, решил устранить ограничения языка Би, добавив в язык систему типов. Так возник язык Си ("C"). В 1973 году Томпсон и Ритчи переписали систему на языке Си. К этому времени существовало около 25 установок ОС UNIX, и это была "Четвертая редакция". Статья оригинал Это статья про систему юникс но там и про С говориться. точнее почему он возник. Ссылка на комментарий Поделиться на другие сайты Поделиться
Someone Опубликовано 6 мая, 2007 Жалоба Поделиться Опубликовано 6 мая, 2007 Недавно начал читать книгу про язык программирования С и наткнулся на то, что он являеться языком низшего уровня по типу ассемблера, в то время как с++, паскал, делфи... это идут уже языки высшего уровня. В связи с этим вопрос язык с являеться языком низшего уровня из-за того что может непосредственно работать с регистрами и стеком или какието другие причины? Я помню как в учебнике по информатике за 7 класс давалось это определение - "Чем 'ближе' язык к человеку и 'дальше' от машинного кода, тем выше его уровень". Но тогда по этой логике получается, что Visual Basic - вершина программерского мироздания А вообще я считаю что сейчас разговор о "высоте" языков программирования уже не актуален - если нужно напрямую лезть в регистры, напрямую писать в секторы ж\д и т.д. можно просто сделать ассемблерную вставку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Vadius Опубликовано 7 мая, 2007 Жалоба Поделиться Опубликовано 7 мая, 2007 Я помню как в учебнике по информатике за 7 класс давалось это определение - "Чем 'ближе' язык к человеку и 'дальше' от машинного кода, тем выше его уровень". Но тогда по этой логике получается, что Visual Basic - вершина программерского мироздания А вообще я считаю что сейчас разговор о "высоте" языков программирования уже не актуален - если нужно напрямую лезть в регистры, напрямую писать в секторы ж\д и т.д. можно просто сделать ассемблерную вставку. На самом деле, "высота" - это уровень абстракции языка от среды выполнения. То есть, ассемблер - это самый низкий уровень, бо привязан к конкретной архитектуре и может быть даже привязан к конкретному процессору. Так что VB - это действительно, один из самых высокоуровневых языков. Но надо понимать, что чем более абстрактен язык, тем меньше его гибкость - при обобщении теряются частности. Поэтому чем выше уровень языка, тем меньше его гибкость и, часто, более низкая производительность. Насчёт ассемблерных вставок - оч распространённое заблуждение, что они позволяют вот так просто менять регистры и радостно этим пользоваться. Откомпилируйте код с асмовой вставкой и дизассемблируйте его - увидите, что компилятор сохранит все регистры перед вставкой, а после выхода из неё восстановит. Так что назначение асмовых вставок - исключительно для увеличения производительности. Ну и для ухудшения переносимости кода . Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти