The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Анализ популярности языков программирования в 2010 году"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Анализ популярности языков программирования в 2010 году" +/
Сообщение от nuclightemail (ok), 30-Янв-11, 18:14 
>>> a) существуют ли языки позволяющие:
>>> 1) для класса/функции/участка нити алгоритма указывать какая требуется оптимизация ?
>> Можно костылями - для каждого .o свои ключи оптимизации указывать. На уровне
>> языка - это не совсем его задача, тут разве что кейворды
>> типа inline.
> .o это слишком глобально,

Никто не мешает реорганизовать проект так, чтобы соответствующие функции попадали в нужные .o - в конце концов, в былые времена иные .o вообще могли генерироваться из другого языка (того же ассмблера, например).

> у моего вопроса уши растут из "почему ассемблерные
> вставки до сих пор повышают производительность?" ибо по факту асм-вставка и
> есть прямое указание компилятору "как оптимизировать этот кусок" в виде "ничего
> не трогай, просто перепиши как тут буква в букву"

Хе. Повышают где/у кого/на каком языке/в каких условиях? В ряде случаев современные компиляторы уже оптимизируют код гораздо эффективнее, чем ручные ассемблерные вставки. Потому что процессоры нынче такие - удержать в голове все их конвееры и прочие особенности уже весьма сложно.

>[оверквотинг удален]
> в математике теория алгоритмов весьма же развита, из программы часто можно построить
> её граф выполнения, можно оценить трудозатраты на выполнение участка графа (это
> к вопросу об ИИ компилятора)
> работа программиста - перевод ТЗ заказчика с русского на язык понятный компьютору,
> чтоб он по этому ТЗ мог выдать результат в понимаемом заказчиком
> виде
> выбор же варианта алгоритма под конкретную задачу не сложнее тупого перебора всех
> возможных вариантов алгоритмов решающих конкретную задачу с учётом нужных условий
> а вот на сколько хорош алгоритм и в каких условиях - этим
> занимается математика

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

> занимается математика (а не программист, если говорить по серьёзному)
> но не существует в математике готовых алгоритмов на все случаи жизни, только
> поэтому программист не является совсем ремесленником а таки и творцом нового
> - учёным-математиком, создаёт новый алгоритм по "переводу тыканья мышкой клавиш в
> годовой отчёт с графиками"

"Ученый-математик" занимается годовым отчетом, опеннет нынче вместо цирка читать можно.

> однако алгоритмы сортировки массива созданы и детально разобраны математиками и по факту
> программисту остаётся только выбрать лучший для его задачи - а это
> работа "ремесленника" которую способен осуществить компьютор (хотяб методом тупого перебора
> всех возможных вариантов алгоритма сортировки), но компьютор не в состоянии выбрать
> "предпочтения" которые может иметь программист в своём глобальном алгоритме "годового
> отчёта"

Не способен, потому что ему задача неизвестна. Компьютер - он думать не умеет.

>[оверквотинг удален]
>>> класс) с указанием компилятору требований необходимой реализации чтоб сам компилятор выбрал
>>> из наличествующих реализаций конкретный класс под требования ?
>> Это как? Сам пошел в аналог CPAN и скачал нужные модули? =)
>> Вообще всё сообщение по требованиям смахивает на кнопку "сделайте мне хорошо"
>> (т.е. работу за меня).
> почти - посмотрел все инклуды (инклуды модулей, неймспейсов, аль ещё какие) -
> нашёл все реализации требуемого интерфейса и выбрал нужный основываясь на пожеланиях
> указаных программистом
> это вполне рабочая кнопка "сделать мне хорошо" - такая же как современное
> автодополнение в ИДЕ

Из всея Интернета-то? Или в таком IDE предполагается держать скачанными десятки гигабайт всех имеющихся библиотек для языка?

Если "такая же" и "вполне рабочая" - так пойдите и сделайте, в чем проблема-то.

>>> b) отдельно - есть ли языки программирования с "алгоритмическим" (типо блоксхемно-описательным)
>>> стилем ?
>> Вообще-то все попытки создать такое провалились. Известный пример - UML. Ну и
>> правильно - мышление должно быть текстовым.
> на сколько я понял UML по факту не предназначен именно для программирования

Он таким задумывался, кодогенераторы же есть. А по факту да, провалился.

> я вобще тут подумал-прикинул - для любого языка можно сделать прямое отображение
> код-блоксхема и блоксхема-код, всё упирается в наличие готового инструмента и качество
> кодогенератора из блоксхемного описания

На каком уровне, обернув каждую лексему в свой блок? =) Да, можно, AST и получится, вот только толку от такого уровня детализации немного. А попытки в более общем виде создать "для любого" таки провалились (для разнообразных DSL успешные попытки бывали, да).

Кстати, насчет восторженности по поводу блок-схем, Брукс еще в 75 году проехался, рекомендую перечитать соответствующую главу.

> тут уже встал вопрос - почему компиляторы не переводят программы в алгоритмическое
> описание (точнее почему это описание не является каноническим "исходным кодом" для
> последующей оптимизации и кодогенерации для всяких llvm)

Это в школу, читать Dragon book (Ахо и Ульман по компиляторам) и много думать.

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

Я развеиванием наивностей заниматься не буду, просто дам ссылки, где это давно уже умными людьми всё пережевано, подробно:

http://c2.com/cgi/wiki?VisualProgrammingLanguage
http://c2.com/cgi/wiki?GraphicalProgramming
http://c2.com/cgi/wiki?GraphicalProgrammingLanguage
http://c2.com/cgi/wiki?FlowChart

Там достаточно, здесь эту дискуссию можно не продолжать.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Анализ популярности языков программирования в 2010 году, opennews, 11-Янв-11, 00:18  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру