Хобрук: Ваш путь к мастерству в программировании

Мне нужен язык предварительной обработки для метапрограммирования

Я ищу язык вроде PHP, но более краткий - мне хочется назвать его «механизмом шаблонов», но я почти уверен, что это неправильный термин. Какой правильный термин? Текстовый препроцессор?

В любом случае я бы хотел, чтобы он был основан на .NET, потому что я хочу использовать его для написания кода .NET. Поскольку универсальные шаблоны .NET не подходят для написания быстрого числового кода (известный обходной путь слишком громоздкий и ограниченный для моих нужд), я хотел бы написать математическую библиотеку, используя какой-то язык предварительной обработки, который позволяет мне выводить код C #. Например, я хотел бы создать серию классов «Point» из различных типов данных (PointF, PointD, PointI и т. Д.):

#foreach(($T, $Type) in {(F, float), (D, double), (I, int), ...}) #{
    public struct Point$T {
        public $Type X, Y;
        ...
    }
#}

Что вы, добрые люди, можете посоветовать?


  • LISP? ;-) Я думал, что обобщенные типы .NET для типов значений (когда не работают с проблемами бокса) должны быть очень быстрыми после их специализации времени выполнения и JIT (в отличие от Java / JVM, у которого нет времени выполнения специализации и имеет только упакованные типы для универсальных примитивов). 16.04.2011
  • Обобщения типов значений быстры для таких целей, как списки или словари. Однако универсальный тип не может выполнять вычисления с такими типами значений, как сложение T + T вместе. Я пишу математическую библиотеку, поэтому я буду делать ТОННУ математики на типе T. 16.04.2011

Ответы:


1

У вас была возможность попробовать шаблоны T4? Этого должно быть достаточно для того, чего вы пытаетесь достичь. http://msdn.microsoft.com/en-us/library/bb126445.aspx

16.04.2011
  • Вау, я уж точно не ожидал, что это будет встроено! Я использую C # Express, поэтому обязательная ссылка: stackoverflow.com/questions/3309551/ 16.04.2011

  • 2

    Механизм создания кода и шаблонов T4 входит в состав Visual Studio.

    Также существует шаблон строки, в котором есть порт C #.

    16.04.2011
    Новые материалы

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

    Еженедельный гидроксид № 01 — Введение
    Здравствуйте и добро пожаловать в первый выпуск Weekly Hydroxide , еженедельной серии статей о ядре Hydroxide. Мы будем писать о процессе написания ядра операционной системы на Rust, наших..

    Пять вещей, о которых вы должны ДЕЙСТВИТЕЛЬНО побеспокоиться в связи с ИИ
    Несмотря на то, что циркулирует много неточной информации об ИИ, важно исправить частые заблуждения. Многие могут быть обеспокоены тем, что их в конечном итоге заменят роботом, или..

    Тестирование ответов на вопросы на основе BERT по статьям о коронавирусе
    Введение В настоящее время большая часть мира затронута пандемией COVID-19 . Для многих из нас это означало домашний карантин, социальное дистанцирование, перебои в рабочей среде. Я..

    Библиотеки PyTorch и Python для машинного обучения: приложения в здравоохранении с обнимающим лицом…
    В сфере машинного обучения Python выделяется благодаря своей универсальности и набору предлагаемых библиотек. Развитие машинного обучения в здравоохранении можно частично объяснить простотой и..

    «Что за…» очень хорошо представляет мое выражение лица после того, как я увидел это!
    «Что за…» очень хорошо представляет мое выражение лица после того, как я увидел это!

    5 вещей, которые я сделал, чтобы стать профессиональным разработчиком JavaScript
    Чтобы стать профессиональным JS-разработчиком: 1. Практикуйтесь в рутине, 2. Работайте над проектами, 3. Придерживайтесь одного языка, 4. Наблюдайте за чужим кодом, 5. Будьте последовательны..