Pull to refresh
0
Karma
0
Rating
  • Posts
  • Comments

Металингвистический совратитель Си. Опус I: Предварительные ласки

Abnormal programmingProgrammingPerfect codeC++C


>> Осторожно, модерн! 2 — 0.1. Спор на баксы и девчонок


Предисловие


Система макросов добавлена в язык программирования Си с целью абстрагирования часто повторяющихся синтаксических конструкций, и как следствие — снижения ментальной нагрузки при чтении и написании исходного кода.


Но не всё так радужно… после моих экспериментов в написании нетривиальных метапрограмм на связке Boost/Preprocessor + Boost/VMD я осознал, что с текущими ограничениями удобное и предсказуемое метапрограммирование препроцессора — нечто недостижимое (вы сами в этом убедитесь). И это не решается только бережностью по отношению к коду, это решается обёрткой над стандартным языком препроцессора в виде встроенного метаязыка.


Такой метаязык я создал, и назвал его Metalang99. Его цель — сделать встроенное в Си метапрограммирование удобоваримым (по сравнению с тем, что было). Это высокоуровневый язык программирования сам по себе, ведь он поставляет управляющие конструкции, типы данных (примитивные и пользовательские), коллекции и другие вещи, свойственные ЯВУ.


В этой серии статей, юмористически именуемых опусами ввиду витиеватого характера предметной области, я подробно объясняю подноготную Metalang99. В конце концов, я надеюсь, что данный материал повысит уважаемым читателям навык владения языком Си, преподнесёт программирование с совершенно иного ракурса.


Сегодняшняя программа:


  1. Уточним терминологию из CS.
  2. Рассмотрим базовые техники, без которых макросоводство на базе стандартного языка препроцессора невозможно.
  3. Разработаем предметно-ориентированный язык для тестирования ПО.

В общем говоря, в этой вводной статье я попытался продемонстрировать практическую выгоду от метапрограммирования времени компиляции и предметной ориентации.

Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Views5.4K
Comments 13

News

Show more

Библиотека ttf2mesh — преобразование TrueType шрифтов в сетку

Open sourceWorking with 3D-graphicsCGraphic designGame design

Многим известна проблема трёхмерной графики — отсутствие легковесных кроссплатформенных решений в вопросе вывода текста.


Большинство реализаций позволяет использовать выбранный шрифт в виде текстуры. Публикуемая библиотека ttf2mesh реализует другой способ — она преобразует векторные символы TrueType шрифта в сеточные объекты. Это позволяет выводить текст в виде набора треугольников.


image


Такой подход имеет как важные преимущества, так и недостатки. Сложность описываемой далее задачи и созерцание великолепных форм шрифтового дизайна доставили массу удовольствия при разработке. Надеюсь, и Вам понравится.

Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Views4K
Comments 15

Сравнение российской рэп сцены используя R и техники Text Mining. Noize Mc and Kasta vs Pharaoh and Morgenshtern

Data MiningRNatural Language Processing
Sandbox

R. Text Mining. Rap


Популярность многих современных рэп исполнителей остается для меня и других приверженцев “старой школы” большой загадкой. Постоянные споры о том, кто лучше, чьи тексты интереснее, чья музыка разнообразнее занимают умы многих интернет-пользователей. Чтобы подтвердить эти споры не просто словами, а фактами я проанализировал тексты четырех российских рэп исполнителей, используя для этого язык программирования R.
Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Views33.7K
Comments 47

Information

Rating
5,786-th
Registered
Activity