Записи с тегом основы

Самый главный гайдлайн

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

Рассмотрим пример ниже. Есть реализация класса на языке Objective-C. Методы отбиты всего-лишь одной строкой. Также отбивка одной …

Плагиат в вузе

Время идёт, а мода ругать преподавателей, вузы и чиновников от образования (в нашем случае всегда только одного — министра) не проходит. Мол, первые — старпёры, читают с листика лекции 40-летней давности и нихера не знают, вторые — это такие организации, типа клуба, чтобы официально откосить от армии, а третьи — просто упыри, методично убивающие …

Как решить невозможную задачу?

В моей практике бывали такие случаи: попросишь программиста сделать какую-нибудь фичу, а он отвечает: «Сделать её невозможно». Я спрашиваю: «Почему?», а он в ответ: «Я прочитал такую-то документацию, посмотрел такой-то пример, попробовал вот этим способом и вон тем способом, и понял, что сделать её невозможно». А иногда говорят: «Ну ты …

Омар Хайям на лини

Чтоб мудро жизнь прожить, знать надобно немало, Два важных правила запомни для начала: Ты лучше голодай, чем что попало есть, И лучше будь один, чем вместе с кем попало.

(Переводчик: О. Румер)

Патент на высокоуровневый синтез

На прошлой неделе готовил лекцию о языке SystemC и наткнулся на статью Stephen A. Edwards, «The Challenges of Synthesizing Hardware from C-Like Languages», о различных С-подобных языках, применяющихся для описания аппаратуры. Среди различных языков и инструментов была ссылка на американский патент № 6 226 776 о синтезе С в железо, который …

Проектирование на системном уровне (доклад)

Во вторник (23.06.09) состоится мой доклад по проектированию на системном уровне. Будет представлен обзор современного состояния, некоторые результаты по моей диссертации, а также различные идеи.

В программе:

  1. Ретроспектива средств автоматизации проектирования (с 1950-х).

  2. Современные подходы к проектированию.

  3. SystemC как язык проектирования систем.

  4. Использование виртуальных прототипов.

  5. Программно-аппаратные системы.

  6. Исследование …

Конспект лекций по оптимизации

Есть хорошие и плохие новости.

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

Пример функции parallel_reduce

В предыдущей статье об Intel Threading Building Blocks рассказывалось о преимуществах этой библиотеки, а также был рассмотрен пример алгоритма parallel_for. Рассмотрим пример использования алгоритма parallel_reduce, который отличается от функции parallel_for тем, что позволяет объединить частичные результаты, полученные в парралельных потоках.

Прежде всего, нужно подключить необходимые заголовочные файлы:

`#include

include

include …

Обратимся к первоисточникам

На вводных занятиях к курсу по оптимизации обсуждаем со студентами такой вопрос, как «Когда начинать оптимизировать»? Часто можно услышать ответ, приписываемый Дональду Кнуту: «Преждевременная оптимизация — корень всех зол».

Обычно, эту фразу (на самом деле вырванную из контекста) трактуют таким образом: нельзя начинать оптимизировать программу, пока она не написана и не …

Шлакоблоки параллельного программирования

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

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