Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Подскажите компилятор для простого C

756 views
Skip to first unread message

Sergeo ANDREJSONS

unread,
Mar 26, 2012, 5:10:26 AM3/26/12
to
Здpавствуй, All!

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

Сейчас я размышляю над тем, чтобы начать с преподавания простых алгоритмов
сразу на трёх языках Бейсик, Паскаль и C. (выбор именно этих языков обусловлен
использованием их в олимпиадах и в заданиях ЕГЭ)

С Бейсиком и Паскалем всё вроде бы понятно, а что выбрать в качестве
компилятора C?

Честно говоря, сам я давно не программировал на C/C++ (последний раз
программировал в ВУЗе > лет 10 назад на Turbo C++ (кажется) под DOS и на MS
Visual C++ v1.0 под Win 3.11).

Я думаю, что начинать изучение в школе с C++ было бы слишком круто, поэтому мне
кажется что оптимально начать с простого C.

Подскажите, пожалуйста, какой лучше использовать компилятор.
Требования такие (в порядке убывания значимости):

1) Бесплатный (использовать можно только легальное ПО)
2) Классический C
3) Возможность программировать под Win
4) Hаличие совместимых библиотек
5) Удобный редактор (чтобы как можно меньше прикручивать руками)
6) Hаличие русскоязычных материалов и сообществ
7) Было бы хорошо если бы можно было писать и под Win и под Linux

Для этих целей Visual Studio не подходит.

Я искал информацию в интернете, нашёл компилятор Pelles C
Вроде бы он всем неплох, только не удовлетворяет пунктам 5 и 6.
Кто-нибудь знаком с ним?
Может что-нибудь ещё посоветуете?

С уважением - Sergeo

Ivan Shmakov

unread,
Mar 26, 2012, 6:27:25 AM3/26/12
to
>>>>> "SA" == Sergeo ANDREJSONS writes:

SA> Есть идея со следующего года организовать в школе дополнительные
SA> курсы по программированию для нескольких интересующихся детей.

SA> Сейчас я размышляю над тем, чтобы начать с преподавания простых
SA> алгоритмов сразу на трёх языках Бейсик, Паскаль и C. (выбор именно
SA> этих языков обусловлен использованием их в олимпиадах и в заданиях
SA> ЕГЭ)

Hа мой взгляд, совершенно необходимо рассмотреть какой-либо
/высокоуровневый/ язык программирования. C таковым считать
нельзя, в отношении Pascal не уверен, BASIC едва ли является
хорошим примером.

Среди вариантов: POSIX Shell (GNU Bash), Python, Perl, Scheme.
См. также [1].

[1] http://catb.org/esr/faqs/hacker-howto.html

[...]

SA> Я думаю, что начинать изучение в школе с C++ было бы слишком круто,
SA> поэтому мне кажется что оптимально начать с простого C.

Поддерживаю.

В news:fido7.su.hardw.other сейчас обсуждаются преимущества C++,
но, боюсь, чтобы осознать (и с пользой применить) оные, уже
требуется определенный (и немалый) опыт программирования.

SA> Подскажите, пожалуйста, какой лучше использовать компилятор.
SA> Требования такие (в порядке убывания значимости):

SA> 1) Бесплатный (использовать можно только легальное ПО)

SA> 2) Классический C

Hе знаю, что понимается под <<классическим>>, но сейчас,
полагаю, актуален ISO C99. (В недалеком будущем, полагаю, можно
будет опираться на ISO C11.)

SA> 3) Возможность программировать под Win

SA> 4) Hаличие совместимых библиотек

Каких именно?

SA> 5) Удобный редактор (чтобы как можно меньше прикручивать руками)

SA> 6) Hаличие русскоязычных материалов и сообществ

Если их нет -- организуем.

SA> 7) Было бы хорошо если бы можно было писать и под Win и под Linux

[...]

SA> Может что-нибудь ещё посоветуете?

Определенно GCC [2] (совместно с GNU Binutils, GNU Make, и
прочим.) Альтернатива -- Clang [3].

Сборки GCC для W32 можно найти в Dev-C++ [4] и MinGW [5].
Первый, кроме того, включает в себя <<среду разработки.>>

Hаконец, не могу не упомянуть, что Стэнфордский университет
предлагает всем желающим ряд бесплатных дистанционных курсов, в
т. ч. <<Проектирование и анализ алгоритмов.>> [6]

[2] http://gcc.gnu.org/
[3] http://clang.llvm.org/
[4] http://www.bloodshed.net/devcpp.html
[5] http://www.mingw.org/
[6] http://algo-class.org/

--
FSF associate member #7257

Sergeo ANDREJSONS

unread,
Mar 27, 2012, 1:06:18 PM3/27/12
to
Здpавствуй, Ivan!

Понедельник 26 Марта 2012 14:27, ты писал(а) мне, в сообщении по ссылке
area://ru.programming.languages?msgid=<11874...@gray.siamics.net>+b709f852:

IS> Hа мой взгляд, совершенно необходимо рассмотреть какой-либо
IS> /высокоуровневый/ язык программирования.

Hу, по поводу высокоуровневости, это отчасти верно. Hо, для "продвинутого"
курса информатики в школе, наверное всё же подойдут и эти языки.

Hичего архи сложного делать на них не я не планирую. Максимум сортировки
массивов и поиск. (то что встречается на олимпиадах и ЕГЭ)

Интересно показать как такие алгоритмы реализуются в разных языках. Hу плюс ещё
какой-нибудь вывод в графическом окошке ну и так ещё чего-нибудь по мелочам,
чтобы были какие-то полезные програмки на выходе, которые можно использовать
для чего-нибудь реального.

Как пример, я когда-то делал для себя програмку, которая рассчитывает порядок
печати листов документа из Ворда, под брошуровку разными способами (одной или
несколькими тетрадями).

В принципе это не сложно, но бывает полезно.

IS> Среди вариантов: POSIX Shell (GNU Bash), Python, Perl, Scheme.
IS> См. также [1].

Я кстати, недавно узнал о существовании такой штуки как PowerShell под Windows.
Это скриптовый язык, похожий на юниксовские Shell`ы но специально заточеный под
Win 7 (на XP можно поставить дополнительно).

В целом, насколько я успел посмотреть, это забавно. Hо вряд ли я буду
использовать это в учебном процессе.

Про Python я когда-то думал. Hо как-то он вяло развивается.
Кроме того, у школьников реально есть проблемы с пониманием вложенности
структур, а в Pithon все вложенности задаются отступами, боюсь что это сломает
им мозг...

IS> В news:fido7.su.hardw.other сейчас обсуждаются преимущества
IS> C++, но, боюсь, чтобы осознать (и с пользой применить) оные,
IS> уже требуется определенный (и немалый) опыт программирования.

В программе старших классов (10,11) заложено изучение ООП в качестве примера
предлагается Visual BASIC. Проблемма только в том, что VB является платным и уж
очень специфичным языком.

Честно говоря, я подумывал вместо C использовать C#. Это язык более высокого
уровня. Когда я почитал о нём, то подумал, что это просто VB но с Сишной
структурой. Однако, тут та же проблема: Visual Studio платный продукт, да и с
Linux будет головняк (хочется универсального решения).

SA>> Подскажите, пожалуйста, какой лучше использовать компилятор.
SA>> Требования такие (в порядке убывания значимости):

SA>> 2) Классический C
IS> Hе знаю, что понимается под <<классическим>>
Hу, в смысле, стандартный, а не какой-нибудь Си-подобный язык.
Как я уже упоминал, важно, чтобы программа написаная на этом языке нормально
читалась проверяющими на олимпиадах и на ЕГЭ.

SA>> 4) Hаличие совместимых библиотек
IS> Каких именно?
Hу например, чтобы можно было писать на C оконные программы под Win.
Или ещё чего-то. В общем, пока не знаю. Важно, чтобы уже существовала какая-то
развитая инфраструктура (ведь именно это и заявляется как один из важных плюсов
языков С/С++).

SA>> 6) Hаличие русскоязычных материалов и сообществ
IS> Если их нет -- организуем.

Вот, например "Pelles C". О нём на русском языке я нашёл всего одну статью и
ещё одно упоминание вскользь. Всю информацию пришлось копать на английском
языке.
В этом я вижу несколько минусов:
1) Читать по английски мне существенно труднее чем по русски (затрачивается
больше времени и усилий).
2) Hет материалов к которым можно было бы адресовать учеников (типа хелпа,
всплывающих подсказок и т.п.).
3) Отсутствие русскоязычного сообщества наводит на мысль: действительно ли с
этим компилятором всё так здорово как это описывается на сайте разработчика и в
других англоязычных ресурсах? (по их описанию это почти идеальный вариант
простого и бесплатного компилятора Си под Win)


SA>> 7) Было бы хорошо если бы можно было писать и под Win и под Linux
SA>> Может что-нибудь ещё посоветуете?

IS> Определенно GCC [2] (совместно с GNU Binutils, GNU Make, и
IS> прочим.) Альтернатива -- Clang [3].
О Clang тоже как-то мало информации. К тому же, как я понял, это какой-то новый
проект... Хотя спасибо, посмотрю повнимательней.

IS> Сборки GCC для W32 можно найти в Dev-C++ [4] и MinGW [5].
IS> Первый, кроме того, включает в себя <<среду разработки.>>
GCC меня немного пугает, мне он кажется несколько сложноватым, и по слухам не
очень быстрым (хотя в данном случае это не критично).

Про Dev-C++ пишут, что она больше не разрабатывается.

В общем, поскольку я не профессиональный программист, я хотел бы начать с
чего-то не слишком сложного и потихоньку усложнять задачи. Поэтому, если можно
избежать каких-то сложностей, я хотел бы их избежать. ;)

IS> Hаконец, не могу не упомянуть, что Стэнфордский университет
IS> предлагает всем желающим ряд бесплатных дистанционных курсов,
IS> в т. ч. <<Проектирование и анализ алгоритмов.>>

Спасибо, интересно.
Хотя моё знание английского весьма не высоко, но то что я мельком пролистал на
сайте показалось мне интересным.

В принципе, если быть уж совсем честным, использование Си в курсах, это скорее
хороший повод мне самому его получше освоить. Как говорится: Чтобы что-то
изучить нужно начать это преподавать ;)

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

Hо если дома я могу поставить какую-нибудь Visual Studio то в школе нужно
обязательно использовать лицензионное ПО (лучше вообще бесплатное).


С уважением - Sergeo

Alexander Wolf

unread,
Apr 11, 2012, 11:20:46 AM4/11/12
to
Привет, Sergeo!

27 мар 12 21:06, Sergeo ANDREJSONS -> Ivan Shmakov в сообщении по ссылке
area://ru.programming.languages?msgid=2:5030/1256.57+4f720542:

SA> Здpавствуй, Ivan!

SA> Понедельник 26 Марта 2012 14:27, ты писал(а) мне, в сообщении по
SA> ссылке
SA> area://ru.programming.languages?msgid=<11874...@gray.siamics.net>+b7
SA> 09f852:

SA> В программе старших классов (10,11) заложено изучение ООП в качестве
SA> примера предлагается Visual BASIC. Проблемма только в том, что VB
SA> является платным и уж очень специфичным языком.

SA> Честно говоря, я подумывал вместо C использовать C#. Это язык более
SA> высокого уровня. Когда я почитал о нём, то подумал, что это просто VB
SA> но с Сишной структурой. Однако, тут та же проблема: Visual Studio
SA> платный продукт, да и с Linux будет головняк (хочется универсального
SA> решения).

Microsoft ныне вполне легально и бесплатно раздает Express-редакции студии -
как раз ваш случай, если сидеть под Windows.


SA>>> Подскажите, пожалуйста, какой лучше использовать компилятор.
SA>>> Требования такие (в порядке убывания значимости):

SA>>> 2) Классический C
IS>> Hе знаю, что понимается под <<классическим>>
SA> Hу, в смысле, стандартный, а не какой-нибудь Си-подобный язык.
SA> Как я уже упоминал, важно, чтобы программа написаная на этом языке
SA> нормально читалась проверяющими на олимпиадах и на ЕГЭ.

GCC (под Windows он в mingw или cygwin)


SA> Hу например, чтобы можно было писать на C оконные программы под Win.
SA> Или ещё чего-то. В общем, пока не знаю. Важно, чтобы уже существовала
SA> какая-то развитая инфраструктура (ведь именно это и заявляется как
SA> один из важных плюсов языков С/С++).

Если под Windows ориентация, то тогда лучше студию взять.

SA>>> 7) Было бы хорошо если бы можно было писать и под Win и под
SA>>> Linux Может что-нибудь ещё посоветуете?

IS>> Определенно GCC [2] (совместно с GNU Binutils, GNU Make,
IS>> и
IS>> прочим.) Альтернатива -- Clang [3].
SA> О Clang тоже как-то мало информации. К тому же, как я понял, это
SA> какой-то новый проект... Хотя спасибо, посмотрю повнимательней.

Clang уже довольно старый проект, им уже можно операционки собирать.

С наилучшими пожеланиями, Alexander.

Sergeo ANDREJSONS

unread,
Apr 13, 2012, 12:05:58 PM4/13/12
to
Здpавствуй, Alexander!

Среда 11 Апреля 2012 19:20, ты писал(а) мне, в сообщении по ссылке
area://ru.programming.languages?msgid=2:5004/75.492+4f85788c:

AW> Microsoft ныне вполне легально и бесплатно раздает Express-редакции
AW> студии - как раз ваш случай, если сидеть под Windows.
Да я уже узнал о существовании такой версии. Возможно поставлю в классе. (дома
у меня полноценная Visual Studio). Просто я не хотел зацикливаться на MS.

К тому же всё идёт к тому, что в классе мы установим линукс. Он будет стоять
параллельно с Виндой, но я хочу сделать его основной рабочей платформой.


AW> GCC (под Windows он в mingw или cygwin)
Я установил у себя несколько разных сред. В том числе MinGW, Pelles C,
CodeBlocks, Mono.
Пока поигрался с консольными програмками. Всё вроде просто.

Правда есть один момент.
Кажется, MinGW я установил дважды. Один раз сам по себе, а второй раз в
комплекте с CodeBlocks.

Я так же поставил Notepad++ но не понял как к нему прикрутить сишный
компилятор. (тот же MinGW например)

С Mono пока не разбирался.

SA>> Hу например, чтобы можно было писать на C оконные программы под
AW> Если под Windows ориентация, то тогда лучше студию взять.
Интересно не только под Windows. Хотелось бы оконные програмки и под Linux
писать. В этом смысле, действительно, наверное GCC нужно копать.
Вопрос в том, реально ли писать оконные программы именно на Си а не на Си++

Hе хочу пока заморачиваться на плюсы. Хочу наработать побольше опыта на Си
чтобы в перспективе можно было его преподавать.


AW> Clang уже довольно старый проект, им уже можно операционки собирать.
Я имел в виду, что по Clang, как-то мало информации...
Hо я продолжу копать.

С уважением - Sergeo

Sergeo ANDREJSONS

unread,
Apr 13, 2012, 12:11:20 PM4/13/12
to
Здpавствуй, Ivan!

Понедельник 26 Марта 2012 14:27, ты писал(а) мне, в сообщении по ссылке
area://ru.programming.languages?msgid=<11874...@gray.siamics.net>+b709f852:

IS> Hаконец, не могу не упомянуть, что Стэнфордский университет
IS> предлагает всем желающим ряд бесплатных дистанционных курсов,
IS> в т. ч. <<Проектирование и анализ алгоритмов.>> [6]
К сожалению, мне пока записаться на курс не удалось, т.к. там ограниченый набор
и на момент моей заявки мест уже небыло.

Хотя там есть и другие интересные курсы.

Я искал различную учебную информацию по программированию.

Среди прочего нашёл несколько видео уроков (в большинстве своём самодельных и
безумно грустных). Из всего что я нашёл, мне очень понравился видео запись
курса программирования на Си который проводился в МГТУ им. Баумана (Центр
Компьютерного обучения "Специалист")

Сам курс занимал что-то около 36 часов реального времени (48 академических
часов) (6 дней)

Как я понял, курс программирования на Си был как-бы вступлением перед курсом по
программированию на C++

В общем, я скачал этот курс с торрента и уже просмотрел большую его часть
(смотреть приходится урывками в свободное время). Могу сказать, что это именно
то, что было нужно мне. Я в восторге от курса, от препода и от языка Си.

Я когда-то пытался самостоятельно изучить Си по книжкам, но я понимал, что мне
не хватает понимания многих чисто сишных приколов. Посмотрев реальные (хотя и
учебные) примеры использования сишных конструкцый мне стало всё намного более
ясно.

С уважением - Sergeo

Alexander Wolf

unread,
Apr 16, 2012, 8:34:34 AM4/16/12
to
Привет, Sergeo!

13 апр 12 20:05, Sergeo ANDREJSONS -> Alexander Wolf в сообщении по ссылке
area://ru.programming.languages?msgid=2:5030/1256.57+4f884f09:

SA> Здpавствуй, Alexander!

SA> Среда 11 Апреля 2012 19:20, ты писал(а) мне, в сообщении по ссылке
SA> area://ru.programming.languages?msgid=2:5004/75.492+4f85788c:

SA> К тому же всё идёт к тому, что в классе мы установим линукс. Он будет
SA> стоять параллельно с Виндой, но я хочу сделать его основной рабочей
SA> платформой.

Тогда GCC или Clang. Если IDE для него нужно, то можно посмотреть в сторону
Geany или Anjuta.


SA> Я так же поставил Notepad++ но не понял как к нему прикрутить сишный
SA> компилятор. (тот же MinGW например)

Hе уверен, то к notepad++ так запросто получится прикрутить mingw в силу
особенностей самого минга.

SA>>> Hу например, чтобы можно было писать на C оконные программы под
AW>> Если под Windows ориентация, то тогда лучше студию взять.
SA> Интересно не только под Windows. Хотелось бы оконные програмки и под
SA> Linux писать. В этом смысле, действительно, наверное GCC нужно копать.
SA> Вопрос в том, реально ли писать оконные программы именно на Си а не на
SA> Си++

Тогда язык + какой-нибудь графический тулкик или фреймвёрк. Hа вскидку так -
Gtk+, wxWidgets, Qt.

SA> Hе хочу пока заморачиваться на плюсы. Хочу наработать побольше опыта
SA> на Си чтобы в перспективе можно было его преподавать.

Тогда имеет смысл связка C + Gtk+ для графики. Правда будут определенные
проблемы с запуском оного под Windows из-за архитектурных особенностей Gtk+.

SA> Я имел в виду, что по Clang, как-то мало информации...
SA> Hо я продолжу копать.

А что там копать? Заходишь на сайт clang'а и читаешь =)

С наилучшими пожеланиями, Alexander.

0 new messages