Дописи з тегом основи

Найголовніший гайдлайн

Найголовніший гайдлайн під час написання коду — це відбивати реалізації методів кількома порожніми рядками і рядком-коментарем. Попри можливості сучасних IDE щодо пошуку й структуризації вихідного коду, візуальне орієнтування досі відіграє важливу роль.

Розгляньмо приклад нижче. Є реалізація класу мовою Objective-C. Методи відбиті всього лише одним рядком. Також відбивка одним рядком трапляється …

Плагіат у виші

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

Як розвʼязати неможливу задачу?

У моїй практиці траплялися такі випадки: попросиш програміста зробити якусь фічу, а він відповідає: «Зробити її неможливо». Я питаю: «Чому?», а він у відповідь: «Я прочитав таку-то документацію, подивився такий-то приклад, спробував ось цим способом і он тим способом, і зрозумів, що зробити її неможливо». А іноді кажуть: «Ну ти …

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

Щоб мудро життя прожити, знати треба чимало, Два важливі правила запамʼятай для початку: Краще голодуй, ніж їж що попало, І краще будь сам, ніж разом із ким попало.

(Перекладач: О. Румер)

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

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

Проєктування на системному рівні (доповідь)

У вівторок (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 …

Звернімося до першоджерел

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

Зазвичай цю фразу (насправді вирвану з контексту) трактують так: не можна починати оптимізувати програму, доки її не написано й не протестовано …

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

Існує кілька способів, як домогтися від програмістів великої швидкості розвʼязання поставлених задач із мінімальною кількістю помилок.

Перший спосіб — використання мов високого рівня, наприклад, C++. Обʼєктно-орієнтоване програмування дає змогу створювати в коді сутності різної природи, а також визначати операції над ними. У результаті ми отримуємо в розпорядження набір якихось …