Как-то раз я написал пост о том, как проектируются компиляторы. Основная идея этого поста заключалась в очень простом композиционном примитиве – а именно, выстроить конвейер из функций. Традиционно проектирование компиляторов выстраивается как нисходящий процесс. Компилятор – большая штука, слишком большая, чтобы сразу уложить его в голове. Поэтому задачи дробятся до тех пор, пока не удастся остановиться на какой-нибудь удобоваримой подзадаче, например: написать парсер. Эта проблема уже достаточно компактная, чтобы справиться с ней в одиночку.
Читать полностью »
Рубрика «язык программирования» - 2
Разбираем по полочкам «философию Unix»
2022-09-30 в 10:05, admin, рубрики: api, java, powershell, timeweb_статьи_перевод, UNIX, windows, Блог компании Timeweb Cloud, Компиляторы, Программирование, система, файлы, язык программированияЯзыку программирования Python исполнилось 30 лет
2021-02-23 в 9:23, admin, рубрики: python, Блог компании Selectel, юбилей, язык программирования
Время идет быстро, и Python, одному из самых популярных языков программирования современности, исполнилось 30 лет. Впервые о нем стало известно в конце февраля 1991 года, когда Гвидо ван Россум опубликовал первый выпуск Python в группе alt.sources.
Работа над языком велась два года, изначальной задачей было создание скриптового языка для работы с операционной системой Amoeba. Язык этот должен был быть более высокого уровня, чем Си, плюс представлял бы удобный доступ к системным вызовам операционной системы.
Читать полностью »
Зачем нам понадобился еще один язык программирования
2021-01-26 в 7:04, admin, рубрики: ERP-системы, lsFusion, open source, бизнес-приложения, Блог компании lsFusion, Программирование, язык программированияБолее чем год назад мы публично представили нашу открытую и бесплатную платформу lsFusion. Многие тогда задавали нам вопрос : зачем мы создавали свой собственный язык, ведь уже существует огромное множество других популярных языков.
Проблема логических языков программирования
2021-01-09 в 18:04, admin, рубрики: Prolog, Алгоритмы, искусственный интеллект, ненормальное программирование, Программирование, разработка языков программирования, язык программированияНекоторое время назад я писал про «Интернациональное программирование на естественных языках», в которой попытался представить достойную цель для абстрактного язык программирования, попробовав примерить на него роль связующего звена между миром программистов с компьютерами и не программистов.
Но в результате оказалось, что это не нужно в принципе, т.к. «не программистам» просто не требуется учиться писать программы. А если иногда такое желание и возникает, то вполне хватает обычных формализованных языков программирования, которых уже сейчас насчитывается наверно более десяти тысяч.
И пользователи, как программисты, так и не программисты, просто хотят решать возникающие перед ними задачи. И хотя задачи бывают совершенно разные, но если способ (алгоритм) её решения известен, то выбрать язык для её решения не составит никакого труда.
За исключением одного класса задач. Задач, решение которых нельзя описать в виде алгоритма. Но можно указать некие критерии, которым должно удовлетворять искомое решение. Я имею ввиду логические языки программирования и Пролог, как самый яркий представитель этого класса.
Еще помню воспоминание из юности, когда удалось достать дискету с этим языком. Ух, с каким задором горели мои глаза, когда мне казалось, ну вот, еще чуть-чуть и будет создана система с базой знаний, у которой и можно будет получить заветный ответ 42 на любой вопрос.
Так почему этого так и не случилось? В чем проблема Пролога, да и любой системы / языка программирования, назначение которых анализировать факты и искать ответы на вопросы?
Эта проблема называется «Комбинаторный взрыв» — экспоненциальная зависимость времени работы алгоритма от количества входных данных. И есть как минимум два решения этой проблемы.
Читать полностью »
G-code, потерявшийся брат Assembler-а
2020-10-05 в 1:05, admin, рубрики: g-code, автоматизация предприятий, Программирование, производство, Промышленное программирование, язык программированияПро язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.
Читать полностью »
Mash — язык программирования, компилирует сам себя
2020-01-04 в 15:24, admin, рубрики: java, виртуализация, высокая производительность, динамическое программирование, Компиляторы, кроссплатформенность, язык программирования
Приветствую всех в новом 2020-м году.
С момента публикации первого поста про Mash прошел практически ровно 1 год.
За этот год язык был сильно доработан, были продуманы многие его аспекты и определен вектор развития.
Этим всем я рад поделиться с сообществом.
Опровергаем четыре стереотипа о языке программирования Rust
2019-09-18 в 13:08, admin, рубрики: c/c++, open source, Rust, мифы и реальность, новый язык программирования, опровергаем заблуждения, рассуждения о будущем, системное программирование, стереотипы, убийца c/c++, язык программирования
Язык программирования Rust, созданный и поддерживаемый корпорацией Mozilla, позволяет обычным программистам писать одновременно и безопасные и быстрые системы: от калькуляторов до высоконагруженных серверов.
За своё относительно короткое время существования данный язык уже успел обрасти стереотипами, четыре из которых я попытаюсь опровергнуть ниже. Я могу пропустить некоторые моменты, дискуссии в комментариях приветствуются.
Конструирующий XPath? Алгоритмический XPath? Ничего, кроме XPath
2019-08-24 в 19:49, admin, рубрики: XML, xpath, порождение программ, Программирование, язык программированияЗдравствуйте, уважаемые читатели. В этой публикации речь пойдет о немного нестандартных применениях такого хорошо известного формализма как XPath. Все знают, что он очень удобен для извлечения информации из XML- или HTML- или еще каких-нибудь *ML-документов (как простых текстовых, так и каких-нибудь виртуальных, которые являются верхним слоем представления какой-либо сложной информации), то есть для того, чтобы задавать этим документам какие-либо вопросы. Однако известно, что чем лучше сформулирован вопрос, тем большую часть ответа он уже содержит. Поэтому напрашивается простая мысль – а нельзя ли использовать записанные на XPath выражения как утверждающие, то есть достраивающие документ таким образом, чтобы это XPath-выражение было истинным? Думаю можно, и это первое, о чем здесь пойдет речь. И второе – если уж мы научимся путем прямого применения XPath создавать новые элементы в документе, то нельзя ли превратить XPath в простой алгоритмический язык программирования? В самом деле, обращаться к данным умеет, создавать данные умеет. Несложно представить, как на нем описать последовательность операторов и оператор ветвления, остается подумать о циклах в нем и о функциях. Это интересно, ну хотя бы, теоретически. И об этом тоже пойдет речь.
Читать полностью »
Какой язык программирования выбрать
2019-05-13 в 4:36, admin, рубрики: Карьера в IT-индустрии, комсомольск-на-амуре, язык программированияПосле того, как я написал статью «Почему не нужно учить Python первым языком», я на регулярной основе получаю много вопросов в личку, что лучше выбрать, как быть и так далее. Поэтому в этой статье я расскажу вам свои мысли на этот счет. И самое главное отвечу на «Священный Грааль» всех новичков: «Какой язык выбрать для обучения программированию».
За свою относительно небольшую карьеру, я прошел путь от продажника 1С, специалиста технической поддержки, QA-Manual, QA-Automation, QA-Lead, Developer. Поэтому у меня есть определенный опыт.
Loli — новый высокопроизводительный язык
2019-02-24 в 12:37, admin, рубрики: C, высокая производительность, интерпретатор, ооп, язык программированияВ этой статье мы поговорим о новом интерпретируемом языке Loli, рассмотрим синтаксис и сравним с языками C и Python.