Отправляет email-рассылки с помощью сервиса Sendsay

Юмор, кино и компьютеры

  Все выпуски  

Юмор, кино и компьютеры


Универсальный компилятор Как известно, сейчас существует колоссальное количество языков программирования (C++, C#, Java, JavaScript, Паскаль, Ассемблер, Бейсик, Питон, Перл, PHP, Dbase, Clipper, Cobol, Fortran, Пролог, Forth, Lisp...).Большинство из них используется до сих пор, хотя некоторые уже прилично устарели, да ещё и постоянно появляются новые. При этом внутри многих языков программирования также существует очень сильная разница в реализации - Borland C++ отличается от Visual C++, стандартная библиотека C++ для Windows отличается от библиотеки C++ для Linux, C++ для 64-битных систем отличается от C++ для 32-битных... При этом все языки, по сути, одинаковые (даже стековый Форт и списковый Лисп обычно используют как аналог обычных, просто странно записанных). Но просто так перейти даже между близкими языками нельзя - везде свои библиотеки, везде есть своя специфика вычислений и синтаксиса. Поэтому совершенно очевидно, что одной из реально необходимых вещей является универсальный компилятор. У него должна быть единая библиотека для всех систем, включающая практически все известные алгоритмы (графы, матрицы, тензоры, вектора, всевозможные структуры данных, растровые алгоритмы, вычисление выражения из строки, символьные вычисления, 3d-алгоритмы, чтение разных типов файлов, работа с сетями, ИИ, шахматные и математические алгоритмы, может даже решения олимпиадных задач по программированию, хотя это, скорее, не в библиотеке, а в примерах...). Естественно, язык сразу должен иметь версию и для запуска в терминале, и в многооконном режиме. Должно поддерживаться программирование для видеопроцессоров и ИИ-акселераторов. Желательно, чтобы этот язык мог быть и интерпретируемым и компилируемым (в зависимости от целей конкретной программы). В чём плюс единого языка? Во-первых, достаточно будет выучитъ один язык программирования (изучать при смене направления деятельности надо будет только новшества в библиотеках, но не базу языка). Во-вторых, стандартная библиотека постепенно будет увеличиваться. При этом производителям процессоров будет очень легко оптимизировать стандартные программы - это придётся делать всего один раз. При необходимости можно написать соответствующие функции даже на ассемблере для конкретного процессора. И все приложения, после перекомпиляции начнут работать быстрее. Требуется как высокоуровневое программиирование (для большинства программ), так и возможность спуститься на более низкий уровень (аналог C++ и даже инлайн ассемблера при крайней необходимости написать очень быстрый фрагмент, для интерпретирующей версии и некоторых операционных систем эти возможности могут быть заблокированы в целях повышения безопасности кода). Создание подобного компилятора и продвижение его в массах - очень сложная задача, поэтому, возможно, сначала появится полноценный искусственный интеллект, и только потом будет создан этот универсальный компилятор, заменяющий все языки программирования. При этом для наибольшего распространения базовый компилятор должен распространяться с исходным кодом (но могут быть и закрытые версии, например, для получения очень быстро работающих программ ). При этом я считаю разумным сперва сделать сайт (или раздел на популярном форуме), где все программисты смогут указать свои идеи, а потом на их базе группой опытных программистов должен быть создан единый, непротиворечивый и неперегруженный язык программирования.

В избранное