Иногда смешивают. Например, игру для браузера могут сделать «на чистом HTML» (куча страничек, по одной для каждого состояния игры) или на HTML+Javascript. Другой пример — программа, основанная на встроенных средствах языка, или программа, дополнительно использующая стороннюю библиотеку.
Чистым бывает только C, он же Pure C. Чистым Си называют, поскольку за свою долгую историю изменения в стандарте и объеме его были минимальны. Вот это чистый Си: void * s = new(Set); /*void * new (const void * type, ..);*/ void * a = add(s, new(Object)); void * b = add(s, new(Object)); void * c = new(Object); if (contains(s, a) && contains(s, b)) Вот это не чистый Си, поскольку используются отдельные функции из C++(т. е. это уже не C, а C/C++): std::cout << sizeof(ob) << "
"; puts("We are Here");
Это значит, что речь идёт именно о настоящих C, Basic или Pascal, а не о производных языках, как Visual Basic, PascalABC, Free Pascal и т. п. Также "чистый" может означать, что не использовались нестандартные средства (например компилятор GCC предоставляет "расширения" - дополнительные фичи, отсутствующие в стандартном С).
"Программировать на чистом C" может иметь несколько разных смыслов. Чаще всего под этим подразумевается программирование без сторонних библиотек и/или фреймворков: всё, что выходит за рамки стандартных библиотек, самостоятельно реализовано тобой / твоей командой.