Форум программистов, компьютерный форум, киберфорум
Наши страницы
CoderHuligan
Войти
Регистрация
Восстановить пароль
Рейтинг: 1.00. Голосов: 3.

Школа программинга. Урок 2. Инструменты.

Запись от CoderHuligan размещена 25.05.2019 в 18:45
Обновил(-а) CoderHuligan 25.05.2019 в 20:25

Большой соблазн излагать предмет с самого нуля, как по учебникам. Мы этого делать не будем. Во-первых, это скучно, во-вторых никто это читать не будет, а в третьих, мы уйдём в сторону от главной темы. А главная тема, это способы алгоритмизации как таковые, а не школьный курс информатики. Главная проблема современной IT индустрии это именно алгоритмизация, которой не уделяется должного внимания. О причинах тому, позже. По ходу, на примерах будут простым языком объясняться некоторые сложные для начинающих сущности. Всё познаётся на примерах, в той или иной степени.

Инструменты.


Пару слов об инструментах.
Те кто сидят на Windows советую скачать бесплатную, но с закрытым кодом оболочку Pelles C с этого: https://www.pellesc.de/index.php?page=download&lang=en официального сайта. Pelles C имеет в своём составе среду разработки - IDE и компилятор Си - LCC. На мой взгляд это очень достойный, простой инструмент не только для начального обучения, но и для коммерческих проектов. В ней можно создавать, как консольные, так и оконные приложения для Windows. Если у вас 32-битная система то качайте 32-битную версию оболочки, если 64-битная, то соответственно 64-битную версию.
Можно использовать набор инструментов MinGW в связке с IDE СodeBlocks. Он включает в себя компилятор Си - gcc. Gcc это профессиональный бесплатный, с открытым кодом компилятор языка Си. Преимущество его в том, что он расширяет базовый набор операций языка Си. Там есть и указатели на метки, что очень необходимо тем, кто создаёт свои трансляторы с языков высокого уровня. Именно на gcc они и создаются, в большинстве случаев. Например на нём реализован язык Haskel и многие другие известные языки. Если сидите на Линукс, то это будет лучшим вариантом (других вариантов, там и нет, в общем-то..) Скачать можно с оф. сайта: http://www.codeblocks.org/downloads/26 Качайте версию, в имени которой есть строчка "mingw", для Windows файл называется codeblocks-17.12mingw-setup.exe. Он включает в себя все инструменты MinGw, включая компилятор Gcc.
Лично я пользуюсь обоими, но предпочитаю Pelles C, как наиболее простую и понятную. Если нужно сделать что-то навороченное, то тут - gcc и только gcc, без вариантов. В Pelles C удобно создавать оконные приложения на win api. Для этого в общем её и создавали. У последней генерится более чистый и понятный ассемблерный код. У gcc часто слишком заумный, ради эффективности.
Не рекомендую ставить майкрософтовский компилятор MVC. Во-первых проффесиональная версия не бесплатна (дороговатая). Во-вторых, студенческая версия никому кроме студентов в общем-то и не нужна, на ней только студенческие лабы делать. В-третьих, она сильно засрёт вашу систему, создаст несколько тысяч записей в реестре, которые потом не удалит, если его деинсталлировать (а деинсталлировать-то придётся, так как это ж..а полная..). В-чётвёртых, там в IDE всё сделано по дурацки(как любит компания Майкрософт..), не интуитивно, сложно и т.д. Профессиональные версии можно использовать, но вам придётся всю жизнь платить Майкрософт. В-пятых, там плохая поддержка языка Си, просто отвратительная. Он заточен на Си++, а Си там как гадкий утёнок. Всё, забыли об этой вещи, как о страшном сне.. Для Си он не подходит.
Есть ещё свободный (устаревший) консольный компилятор TinyC (TCC), который тоже можно использовать, но я не практикую, хотя и пробовал.

Крайне желательно иметь под рукой какой-нибудь дебаггер (отладчик). Желательно с возможностью дизассемблирования. Професиональные версии, например IDA PRO стоят немерянных денег, поэтому лично я пользуюсь старой бесплатной версией OllyDbg, в просторечии "Оля" или "Ольга". Так как я сижу в основном на 32 битной Windows, то мне его хватает. На 64 битных нужны другие отладчики. Здесь список некоторых из них: https://ru.wikipedia.org/wiki/%D0%9E...87%D0%B8%D0%BA. Хотя на оф. сайте и есть 64-битная версия, но она ещё слишком сырая, да и множество функций прежней версии просто отсутствуют. Я пользуюсь старой версией 1. 10. Скачать можно отсюда: http://www.ollydbg.de/.
Я написал создателю ольги, с тем, чтобы он выложил исходный код. А то разработка тянется уже больше 10 лет, а воз и ныне там. Я вам сообщу об ответе, если таковой от него придёт.
Ольга отлично помогает понять как в реальности работает компьютер, так как в реальном времени показывает все регистры процессора, состояние стека, а также полный ассемблерный листинг. Хотя иногда Ольга путается и выдаёт совершенно недостоверные вещи, но такое бывает редко.
Если у вас бабки есть, то берите "Иду", хотя если порыться в интернете, то можно нарыть крякнутые (взломанные) её версии. Но ставить их только на свой страх и риск - работа их не гарантирована..
У Gcc есть собственный консольный дебаггер Gdb. Он навороченный. Если потратить энное количество времени на его изучение, то он в умелых руках может многое. Но он неудобен.
К сожалению не могу много времени тратить на эту писанину, так что хотя бы понемногу будем двигаться к цели. Дальше начнётся самое интересное.
Размещено в Без категории
Просмотров 250 Комментарии 3
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Аватар для Croessmah
    Цитата:
    и компилятор Си - LCC
    Оно хотя бы C99 поддерживает?
    Запись от Croessmah размещена 25.05.2019 в 23:21 Croessmah вне форума
  2. Старый комментарий
    Аватар для CoderHuligan
    Цитата:
    Сообщение от Croessmah Просмотреть комментарий
    Оно хотя бы C99 поддерживает?
    Конечно.
    Запись от CoderHuligan размещена 26.05.2019 в 11:19 CoderHuligan вне форума
  3. Старый комментарий
    Аватар для CoderHuligan
    Цитата:
    Сообщение от Croessmah Просмотреть комментарий
    Оно хотя бы C99 поддерживает?
    Pelle C использует модифицированную версию LCC. Там есть практически всё что нужно: "providing C11 support, amd64 support, and additional optimisation techniques such as inline expansion"
    Запись от CoderHuligan размещена 26.05.2019 в 12:54 CoderHuligan вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru