Страница пересобрана: 18:33 01.07.2017
[d | an-b-bro-fr-hr-l-m-maid-med-mi-mu-ne-o-ph-r-s-sci-sp-tran-tv-x | bg-vg | au-tr | a-aa-c-fi-jp-ls-rm-tan-to-vn | gf | azu-dn-hau-ma-me-mo-p-sos-t-w | misc-vnd ]
[Burichan] [Futaba] [Gurochan] - [Архив - Каталог] [Главная]

[Назад]
Ответ
Файл: 1478798485237.png -(41 KB, 400x400, 0afa1dbcc44a71b48237dfce43cbfdb6_400x400.png) Изображение уменьшено, кликните для отображения оригинала
41 No.186239  

Привет, Электрочан.
Мой 11-ти летний брат умоляет меня научить меня программному языку Basic.
Соглашаться, или подождать пока вырастит?
Да и вообще, как учить таких мелких?

>> No.186241  

Сорян, вторая "меня" лишняя была

>> No.186242  
>11
>мелких

Некоторые в этом возрасте уже нормальный код пишут.

Объясни основные концепции, дай справочник по языку и сборник практических задачек. Ну и учить имеет смысл сразу что-то человеческое - питон, шарп, яву может быть.

>> No.186244  

>>186239
Пусть сначала ассемблер MIPS изучит, потом алгоритмы. А потом можно уже дальше смотреть, что изучать.

>> No.186249  

>>186239
Если ты сам уже смог, то начинай натаскивать его Кнутом, в смысле, его книгой "Искусство программирования", а на десерт корми его тортиками, то есть какой-нибудь RISC-ассемблер на реальной платформе, микроконтроллеры из файн ту, регистры-фигистры, прерывания, все дела.
Первый сделает его паровозиком, который смог в алгоритмы, а второе поможет разобраться в лоулевельных азах. Сипитоняваинойщитнавыбор - потом.
В 11 лет я, блджад, не в силах более созерцать бейсик и паскаль, начал курить си.
PS. 10 лет преподаю в университете, правда, не по IT-части, поскольку к моменту поступления в ВУЗ, чисто-конкретный кодинг для меня выглядел как что-то скучноватое и совсем не тем, чему я бы хотел посвятить свою жизнь. Я не как чванливый свысокасмотрящий мудак заявляю, а считаю, что умение в основы программирования должно быть наравне со знанием всех базовых предметов для любого, кто получил аттестат о базовом образовании.

>> No.186251  

>>186239

Читай ему SICP, пока он спит, а на рабочий стол кинь куда-нибудь в угол ярлык для guile - пусть сап спросит, что это такое.

>Да и вообще, как учить таких мелких?

Начни с математики.

>> No.186254  

>>186251
Математика - да, это само собой подразумевающееся, как, например, знание алфавита, а вот SICP рановато.
капча "ci" согласна

>> No.186255  

>>186239
Я бейсик и фортран изучал в 9 лет, на бэкашках правда.

>> No.186258  

>>186244
Как ни странно, поддвачну. В школе учили паскаль, в универ плюсы, а потом только асм. И именно с асмом я начал понимать суть программирования.

>> No.186279  

>>186249

>Я не как чванливый свысокасмотрящий мудак заявляю

Но ты и есть чванливый свысокасмотрящий мудак!

>> No.186280  

>>186239
Не, васик ему точно не нужен. Постарайся привить функциональную парадигму, начни с изучения математики + какого-нибудь красивого функционального языка, типа лиспа и/или хаскеля. Поверь, это ОЧЕНЬ сильно пригодится ему.

>> No.186281  

>>186239
Питон ему покажи.

>> No.186282  

купи ему LEGO Mindstorms NXT, накати туда Аду
а если серьёзно, спроси, зачем ему это надо. как вариант, он просто не представляет, насколько это нудное занятие

>> No.186293  

>>186282
Программирование - это очень интересно. Это единственный вид творчества, доступный всем, и в то же время позволяющий достигать невообразимфх высот. Не всем это нравится, конечно, люди разные. Но если мелкого это заинтересовало - зачем отговаривать?

>> No.186297  

Вроде детей модно сейчас обучать на Python и Go. Лучше, чтобы была книжка удачная в стиле "мой первый язык" и лучше чтобы она была интересная. Можешь показать ему https://scratch.mit.edu/ . В MIT посчитали, что детей в программирование завлекать стоит так - сначала интерактивно, в гуе и сразу с бегающими котиками. Например есть переведенная на русский книжка "Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python". Думаю в этом есть смысл - начинать с простых современных учебных языков, которые дают поиграться прямо сразу, потом переходя на настоящий. Если заинтересует, то выучить лисп и сишечку всё равно успеет, когда дозреет.

>> No.186298  

>>186297
Думал начать учить его Скретчем, чёрт, эта хрень сложнее чем C++

>> No.186300  
Файл: 1478860779717.gif -(0 KB, 25x17, default.gif) Изображение уменьшено, кликните для отображения оригинала
0

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

>> No.186301  

>>186300
Я не говорил, что роботы - это плохо, совсем наоборот - я совершенно согласен с тем, что мелкому нужно обязательно видеть плоды своих трудов. Просто ты так выразился, будто "да уж пусть хотя бы роботами займется, а вообще ему это и вовсе ни к чему, скучно".

>> No.186311  

>>186297
А меня кубасик завлёк в программирование и так.

>> No.186315  

>>186280

>это ОЧЕНЬ сильно пригодится ему

Чем же?

>> No.186322  

>>186315
Функциональщину сложно учить после ООП и структурного подхода. Тем временем, спрос на функциональщиков бешеный и зарплаты там от 4000$ начинаются даже в России. Так что овчинка стоит выделки.

>> No.186330  

>>186315 ничем
тридцать лет назад все фапали на структурное программирование
двадцать лет назад все фапали на алгоритмические и ассемблерные оптимизации (программы на Дельфи с ассемблерными вставками, сортировки минимальным числом действий, вот это всё)
десять лет назад все фапали на ООП: абстрактные данные, с которыми через абстрактные интерфейсы работают абстрактные рабочие на абстрактной фабрике — искусственные классификации, высосанные из пальца, как в ботанике, с теми же проблемами
сейчас фапают на функциональное программирование, выпердыш АВМ с теми же проблемами, что известны любому электронщику
на что будут фапать через десять лет не знает никто, а ведь именно к этому времени мелкий закончит обучение
>>186322 у тебя логика дешёвой проституки — осваивать то, за что больше платят

>> No.186331  

>>186330

>с теми же проблемами, что известны любому электронщику

А я вот не знаю, расскажи.

>> No.186332  

>>186331 АВМ не может выполнить последовательность действий по заданному алгоритму, поэтому на практике их заменяли гибридами, в которых аналоговая часть моделирует физический процесс (решает систему диффуров, грубо говоря), а дискретная осуществляет управление на основании своего текущего состояния и результатов моделирования
АВМ не изменяет свои входные данные, вместо этого она порождает новые — это очевидно из схемотехники операционного усилителя

>> No.186333  

>>186322
Совсем не правда.

Алсо, подходы можно и нужно комбинировать.

>> No.186334  

>>186330
У тебя совсем неправильная хронология. Кроме того, подходы не заменяют друг друга, а накладываются и взаимодополняют. И вообще функциональщина появилась не 10 лет назад, а на заре компьютеров, тот же лисп минимум вдвое тебя и меня старше. И в своей нише она всегда была актуальна и этой актуальности еще очень долго не утратит.
>>186333
Правда, еще как правда. А вот подходы действительно нужно комбинировать, выбирая для каждой подзадачи тот, что лучше.
Я никого не призывал учить только функциональщину, я просто указал, что ее стоит изучить как можно раньше, до структурного и ООП. После них уже очень тяжело перестроиться.

>> No.186340  
Файл: 1478939060330.png -(660 KB, 600x600, 1348121145219.png) Изображение уменьшено, кликните для отображения оригинала
660

Я безработный математик, зато читаю SICP, вычисляю факториалы и пишу Y-комбинаторы каждый день и планирую освоить языки с зависимыми типами, но не написал ни одной полезной программы за всю свою жизнь. Учите функциональщину и тогда достигнете просветления как я и освободитесь от бренности прикладного программирования. и это не смешно, я правда такой

>> No.186342  

>>186340
Няша.

>> No.186358  
>как учить

А че там учить - отличный язык, уж повеселей крестов.
операторы ввода, операторы вывода.
условия, циклы
работа с текстовыми переменными.
Остаются функции и графический режим.

>> No.186385  

>>186358

> графический режим

Ересь. Только консольное взаимодействие, только старая школа!

>> No.186399  
Файл: 1478990042307.gif -(699 KB, 640x480, chiyo-chans-father.gif) Изображение уменьшено, кликните для отображения оригинала
699

>>186340
У меня схожий недуг, те же симптомы.
Дошло до дрочки на Altera Cyclone V, Oberon, дикого желания дописать свой графический движок на этом деле, с аппаратными кольцевыми буферами, а потом осцилограф запилить и проверять всякие лженаучные сверхединичные генераторы, а потом я подумал, что в принципе возможно реализовать FPGA на молекулах какого-нибудь кристала, то есть придумать молекулярный аналог NAND-вентиля и из таких молекул вырастить кристал. Но тогда придётся костылять какой-то интерфейс к такому кристалу. И кристал остаётся всё-таки материальным объектом, составным, разрушимым. Потом я стал обмазываться торсионной теорией Акимова и Шипова, мечтать, как запилю физическую модель по уравнениям Эйнштейна-Картана, как буду на ней моделировать всякие стоячие волны и кручения среды с прогнозами эволюции системы в заданных условиях. Но лень.

>> No.186400  

>>186334 я какбэ про моду говорил, да ещё и с окном в десять лет

>как можно раньше, до структурного и ООП

онтогенез повторяет филогенез, от этого никуда не денешься. структурировать, классифицировать и командовать другими человек научился намного раньше
сможешь ли ты эксплицитно объяснить функциональную парадигму и ответить на вопрос о целесообразности не породив множества уточняющих вопросов? если нет, не стоит и браться
>>186340 можешь поразмышлять на досуге о том, что отличает гуманитария от технаря. серьёзно

>> No.186401  

>>186239
Учителя си, его синтаксис один из самых распространённых, язык простой для понимания, и из моды ещё осень долго не выйдет. Хотя системное программирование и эмбеддед не для всех, потом будет намного проще осваивать какую-нибудь жаву или что там у хипстеров сейчас модно.
Учить лучше начиная с примитивных задачек вроде подсчета числа выигрышных билетиков, как по верхам пройдешься по основным возможностям языка, неплохо бы запилить какой-то не слишком сложный, но умеренно крупный проект, например, самодельный "архиватор" файлов, сперва просто сливающий-разбивающий файлы, потом добавить шифрование, сжатие, натянуть на него пользовательский интерфейс...
Главное, чтобы малому это все было интересно, а всякие детальные алгоритмы и математику надо учить не хаотично для себя, как советуют итт, а по четкой программе, поступив в соответствующий ВУЗ и не околачивая там груши.

>> No.186402  
Файл: 1478996276856.png -(1 KB, 608x464, zx-sinclair-basic.png) Изображение уменьшено, кликните для отображения оригинала
1

Раз уж здесь пошла такая пьянка, то какой язык можно назвать аналогом старых бейсиков на микрокомпьютерах?
Чтобы был везде и был лёгок для написания и понимания?

>> No.186403  

>>186402
Был везде в каком смысле?

>> No.186410  

>>186402
Питон, пожалуй. В любом GNU/Linux стоит из коробки, в макоси устанавливается одним кликом мышки а может уже и тоже из коробки, в винде тоже вроде бы проблем нет. Достаточно простой, но при этом довольно мощный язычок. Немного напрягают отступы... Как в бейсике напрягала принудительная нумерация строк. Вот и все.

>> No.186411  

>>186340
reimu:

>> No.186412  

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

Golang в этом смысле намного более адекватен — компилируется в один легко распространяемый статический бинарник, работает на всех релевантных современности платформах, имеет очень удобную систему подбора зависимостей через http и гит и все такое прочее.
Минусы у golang разве что только в немного жирноватых бинарниках из-за встроенного крупноватого рантайма, в абсолютно упоротом синтаксисе встроенного ассемблера, да и в том, что он для эмбеддед не подходит.
Для новичков он должен хорошо подходить, так как синтаксис довольно ограниченный и без излишеств, хотя некоторые необычные моменты, которые требуют некоторого времени, чтобы их усвоить все-таки присутствуют. Плюс очень хорошо проверяющий многие вещи еще на этапе компиляции компилятор сыграет очень много положительной роли.

>> No.186413  

>>186334
Нормальное ООП почти функционально.

В нормальном ООП имхо
1) мутабельность не супер привествуется
2) single responsibility principle
3) composition over inheritance

Что приводит к коду очень похожему на функциональный, где вместо функций у нас просто очень лёгкие объекты.

Современная джава к примеру имхо именно такая.

>> No.186414  

>>186413

> мутабельность не супер привествуется

Очередная дрочка хипстеров-фронтэндеров. Они как мухи и мотоциклисты, каждый год новые вместе со своими фреймворками и ТРЕНДАМИ.

>> No.186419  

>>186412

> Питон скриптовый

Как и басик, в своё время в большинстве реализаций.

> всех завистимостей

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

>> No.186443  

>>186414
Вот во фронтэнде на самом деле это ни к селу ни к городу. А в нормальных средах исполнения это позволяет избежать печальных багов связанных с concurrency.

Но не мне судить фронтэндщиков. Если копаться в той куче говна, что представляет собой веб технологии, можно ещё и не такое придумать.

>> No.186444  

Вообще не понимаю, о чем вы тут говорите. Простыми словами скажите: какой яп проще и приятнее для изучения первым?

>> No.186445  

>>186444
Во-первых, какой угодно.
Во-вторых, тот, который позволяет тебе выполнить ту практическую задачу, которую ты перед собой ставишь.

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

Каждый человек разный и кто-то, например, не может воспринимать значимые отступы питоны. Другой не может воспринимать типизированность. Третьему ООП не заходит.
Так и языки в свою очередь очень разные. Для каждого применения нужно выбирать свой язык.

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

>> No.186455  
Файл: 1479113131475.png -(322 KB, 1456x641, Q0vFcHdr.png) Изображение уменьшено, кликните для отображения оригинала
322

>>186413

>> No.186456  

>>186412

> Питон скриптовый

Как что-то плохое. Есть куча реализаций питона, вплоть до трансляторов в другие языки и компиляторов как в машинный, так и в байт-код для Java, .NET и чего твоей душе угодно.

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

Во-первых, найти машину без питона куда сложнее, чем без того же Golang, почему - смотри выше. Во-вторых, все, что нужно сделать пользователю для установки хорошо написанной программы - запустить setup.py.

> Golang в этом смысле намного более адекватен — компилируется в один легко распространяемый статический бинарник,

Питон так тоже умеет.

> работает на всех релевантных современности платформах,

Ни на одной из которых я его ни разу в жизни не видел. Им вообще кто-то, кроме Google и хипстеров пользуется?

> имеет очень удобную систему подбора зависимостей через http и гит и все такое прочее.

И питон так тоже может. Да, у питона тоже есть менеджер зависимостей, представь себе!

> Минусы у golang разве что только в немного жирноватых бинарниках из-за встроенного крупноватого рантайма, в абсолютно упоротом синтаксисе встроенного ассемблера, да и в том, что он для эмбеддед не подходит.

У питона - все то же самое.

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

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

>> No.186458  

>>186445

>Во-первых, какой угодно.

Кроме c / cpp.

>> No.186459  

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

У Go бинарнику не требуется установка рантайма на машине. Это просто скомпилированный бинарник, который работает.

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

Я лично люблю и питон, и go, и даже ES6 JS, особенно с добавкой async/await, и использую их для разных вещей.

>> No.186460  

>>186458
C++ действительно и врагу не посоветуешь в качестве первого языка. Слишком много всяких неочевидных моментов и способов отстрелить себе яица в нем.

А вот C напротив может вполне зайти даже новичку. Особенно, если его использовать в дружественной для новичка форме, как он оформлен, например, в Arduino.

>> No.186461  

>>186460 на каком уровне понимая зайдёт С ?
число — это битовый массив, к нему применимы битовые операции в качестве бонуса «число» имеет wrap-around семантику
массив — это ряд ячеек памяти
адрес ячейки памяти — это число, которое битовый массив
функция возвращает «ничто» и изменяет свои аргументы
case — это цикл; его условия не покрывают весь диапазон значений принимаего аргумента
сколько надо медитировать над этим, чтобы постичь истину?

>> No.186462  

Да ну вас всех. Буду питон изучать.

>> No.186463  

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

>> No.186464  

>>186459

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

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

> У Go бинарнику не требуется установка рантайма на машине. Это просто скомпилированный бинарник, который работает.

Питону, в общем, тоже не требуется. Он просто таскает с собой интерпретатор и библиотеки. Это если забыть про компилируемые вариации питона, где точно так же на выходе имеем просто бинарник (или .NET-овскую сборку, или .JAR - файл). А вообще я крайне сомневаюсь, что новичку важна кроссплатформенность.

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

Приходилось с этим сталкиваться, проблем не припомню. Жирно, да, но что поделать.

> Я лично люблю и питон, и go, и даже ES6 JS, особенно с добавкой async/await, и использую их для разных вещей.

Кхм, с этого и надо было начинать. Я бы даже спорить не стал.

>> No.186465  

>>186463 не даёт. всё, что я назвал, надо принять как данность и вызубрить. это нельзя понять

>предпочитает положиться на магию

кто громче всех кричит про магию оптимизирующего компилятора, никогда внимания не обращал?

>> No.186466  

>>186461

> имеет wrap-around семантику

только для беззнаковых типов, для знаковых это UB потому что стандарт С такой, что поделать. Но в неприятных ситуациях можно очень весёлых шишек набить.

> как и в байт-код для Java, .NET и чего твоей душе угодно

с которыми не работают биндинги на С без которых питон дико тормозной

Но я все равно рекомендую С и https://learncodethehardway.org/c/

>> No.186467  

>>186465
Прекрасно все это можно понять, если хоть на секунду задуматься о том, каким инструкциям процессора соответствует и какими последовательностями инструкций реализуется каждая из этих вещей.
Оптимизирующая магия компилятора — это данность и она ломает код в некоторых ситуациях, но она не настолько далека от исполняемого кода, чтобы создавать проблемы обычному коду, который не пытается лезть в трюкачество.
С таким же успехом можно еще обратить внимание на OoOE магию в современных процессорах, которая может наделать не меньше гадостей, чем любая оптимизация компилятора.

>> No.186469  

>>186249

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

По-моему, всё, что человек изучал в школе или с детства, так начинает выглядеть, когда становишься взрослым. Или это всё-таки не так?

>> No.186470  

>>186469
Впрочем, возможно, это школа "шкварит" в умах детей всё, до чего дотягиваются учителя.

>> No.186471  

>>186469
Глупости, вовсе нет.
Некоторые вещи наоборот, становятся интереснее, ты их открываешь заново, углубляешься в понимании.
Знаешь, если некто был туповатым и/или нерадивым учеником (некоторые при этом сносно учатся), который уже в юном возрасте превратился в унылый овощ, которому ничего не надо и ничего не интересно, кроме сугубо животных интересов, то какие тут бурения небес, им потом абсолютно всё кажется скучным, да и Дела жизни у них обычно нет. Они вырастают и тупо работают только для заработка денег, без Мечты и без Дела.
Иногда, правда, бездарный учитель по предмету способен убить в ученике живой интерес отвратительным преподаванием. То бишь, от школы тоже зависит, что очевидно.

>> No.186473  

>>186459
А какая разница дропает ли код интерпретатор в процессе выполнения или компилятор в процессе компиляции?
>>186461
Не больше, чем над пониманием структур в любых других языках.
>>186464

> В том же С тот факт, что твоя программа скомпилировалась, не означает, что в ней нет не то что логических - даже семантических ошибок.

Моё любимое: if (get_backdoor = true) ...;

>> No.186474  

>>186473
И они ещё говорят, что GOTO - страшное зло.

>> No.186475  

>>186473

> Моё любимое

Как-будто эта конструкция не ведёт себя аналогично в десятке других языков.

>> No.186482  

>>186475
В десятке других языков или выпадет ошибка о присвоении в ифе, или пройдёт сравнение.

>> No.186483  

>>186466

>для знаковых это UB потому что стандарт

и почему именно это «неопределённое поведение»?
>>186467 иными словами, чтобы это понять надо достичь уровня, когда написание собственного компилятора воспринимается как легкая прогулка по саду

>каким инструкциям процессора

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

>Оптимизирующая магия компилятора — это данность

это непонимание: [буковкинаэкране] -> [...магия...] -> [исполняемая программа]
«магия» называется компиляцией, её побочные эффекты: объектные файлы, загрузка процессора в течении процесса, большое количество сообщений в консоли. в «магии» можно выделить заклинания “gcc” и “ld”. к «магии» имеют отношение такие слова, как «ассемблер» и «байт-код»
>>186473

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

языки бывают разные, в том числе хорошо спроектированые. некоторые из подмножества хорошо спроектированных языков позволяют даже проводить доказательства корректности алгоритма в автоматическом режиме
кому нужно это враньё: процедура — это функция, инструкция выбора — замаскированный цикл while (1) {if (x == 1) doChetoTamRaz; if (x==2) doChetoTamDva; ... }, число — это регистр процессора, ..., война — это мир, свобода — это рабство ?

>> No.186486  

>>186482
Пятёрка самых популярных даже warning не кидает на это дело. Молча присваивает.

>> No.186487  
Файл: 1479166499644.jpg -(80 KB, 960x720, slide_14.jpg) Изображение уменьшено, кликните для отображения оригинала
80

>>186473
Разница очень большая. Когда ошибку ловит компилятор, программа еще не начала работать со своими данными. А когда ошибка выпадает в рантайме, то если программист не является аккуратным, то есть очень высокая вероятность повредить данные с которыми работает программа, оставив их в промежуточном состоянии.

>if (get_backdoor = true)

Но на это же сейчас половина компиляторов выдают предупреждение. Переведи это предупреждение в ошибку в своем компиляторе, если боишься это сделать случайно.

>>186483

>и почему именно это «неопределённое поведение»?

Потому что стандарт определяет три возможных варианта для хранения отрицательных чисел в памяти в зависимости от реализации: two's complement, one's complement и sign-magnitude. Естественно, что некоторые вещи с числами, имеющими знак, в этом случае будут вести себя очень различно.

>надо достичь уровня, когда написание собственного компилятора воспринимается как легкая прогулка по саду

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

>С настолько опупенен, что позволяет постигать суть программирования не зная до знакомства с ним ничего

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

>> No.186490  

>>186487
По поводу знаково-беззнаковых типов: на Cppcon 2016 есть чудесный доклад Чендлера Каррута про неопределённое поведение, рекомендую https://www.youtube.com/watch?v=yG1OZ69H_-o&index=84&list=PLHTh1InhhwT7J5jl4vAhO1WvGHUUFgUQH

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

>> No.186498  

Вот вам тёплый ламповый BASIC из ПЗУ.

http://hackaday.com/2016/10/27/basic-interpreter-hidden-in-esp32-silicon/

>> No.186510  
Файл: 1479258688659.jpg -(34 KB, 604x454, Ебать ты ЛОХ.jpg) Изображение уменьшено, кликните для отображения оригинала
34

>>186487

>стандарт определяет три возможных варианта
>три возможных варианта
>implementation-defined
>> No.186511  

>>186510
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
6.2.6.2.2 на странице 38 и 39.

>> No.186514  
Файл: 1479294242272.jpg -(127 KB, 512x866, 1423424742297.jpg) Изображение уменьшено, кликните для отображения оригинала
127

>>186510
c:lowll



Удалить сообщение []
Пароль
[d | an-b-bro-fr-hr-l-m-maid-med-mi-mu-ne-o-ph-r-s-sci-sp-tran-tv-x | bg-vg | au-tr | a-aa-c-fi-jp-ls-rm-tan-to-vn | gf | azu-dn-hau-ma-me-mo-p-sos-t-w | misc-vnd ]
[Burichan] [Futaba] [Gurochan] - [Архив - Каталог] [Главная]