Обычно комментарии в таких случаях не считаются. Все современные инструменты анализа объема кода пропускают всё, что находится под комментарием, т.к. оно никак не влияет на сложность программы.
Для того, чтоб язык был полезен хоть кому-то после выхода (кроме самого разработчика), он должен обладать некоторым количеством отличающих черт, каждая из которых хоть как-то упрощала б задачу реализации программного обеспечения.
Извините, конечно, но Вы представили еще один generic язык, который ничего особо нового и не дает людям. Однако, для всего нужен опыт, и, даже один законченный ЯП, я уверен, смог Вас очень многому об этой области CS научить, и, следовательно, следующая попытка будет уже лучше. Нужно просто сделать его уникальным и полезным.
А вообще, могу точно сказать, что 99% всех программистов никогда в своей жизни не реализуют ничего своего и не напишут об этом статью. К тому же Вы за эту статью (скорее всего) получили приглашение на Хабр. Так что поздравляю!
Да, конечно, в указанных в статье случаях компилятор это делает за вас. Но, однако, бывают и более нетривиальные случаи. Правда?
Должен ли компилятор делать такие оптимизации в данной функции, например?
void whatever(char* s, char* a) {
int k = 0;
for (int i = 0; i < strlen(s); ++i) {
for (int j = 0; j < strlen(s); ++j) {
if (s[i] == s[j]) {
a[k++] = s[i]; // Modifying "a"
}
}
}
}
А вот нет: указатель a может ссылаться на регион в памяти, принадлежащей s. В процессе исполнения этого цикла мы модифицируем a, и, следовательно, можем изменить расположение '\0\' в s, которое, в свою очередь, может поменять результат исполнения выражения strlen(s), из-за чего компилятор, конечно, оптимизировать этот код не будет.
В сериале "Кремниевая Долина" был точно такой же робот! А что пугает больше всего, тот человек, который в телепередаче с этим гуманоидом заводил отношения, очень сильно похож на одного из мировых экспертов по ИИОН, о котором упоминается в статье!
Твоя программа не реализовывает спецификацию утилиты yes. В статье написано ведь, что утилита должна принимать аргумент коммандной строки, заменяющий "y" в случае наличия.
Причиной этому можно назвать то, что мне конкретно надоело тратить 80% усилий при разработке веб-приложений на то, чтобы догадаться, почему у меня undefined is not a function кидается в консоль, когда я нажимаю на кнопку, которая "вроде-бы" должна работать.
Представьте себе, что хотите собрать код, а затем, если сборка оказалась успешной, вызвать make?
Помоему, данная последовательность действий ничего полезного из себя не представляет. Второй пункт, скорее всего, нужно заменить на что-то типа "запустить тесты".
Или, может, под "сборкой проекта" вы подразумевали процесс генерации Makefile'а?
The number of k-combinations from a given set S of n elements is often denoted in elementary combinatorics texts by C(n ,k) or by a variation such as $C{k^n}$, {}{n}C{k}, ${}^{n}C{k}$, $C{n,k}$ or even $C{n}^{k}$ (the latter form was standard in French, Romanian, Russian, Chinese and Polish texts).
У меня был похожий опыт. Я, в промежутке 2013-2015 гг. играл в Доту. На это у меня ушло ~2500 часов. Я не могу сказать, что мне это ничего не дало, но, конечно, то, что я получил, можно было-бы получить за намного меньшее количество времени.
Хотя, исходя из Эффекта Бабочки, можно сказать, что всё, что мы делали раньше, имеет огромное влияние на то, чем мы занимаемся сейчас. Поэтому, наверное, я должен быть благодарен тем, проведенным в этой игре, часам :)
А вот на мой английский и логику повлиял больше всего именно Minecraft, в который я играл с 2010 до 2012 гг. До сих пор вспоминаю эти времена с большим удовольствием :)
Я сейчас учусь в 9-ом классе. Также, как и автор статьи, занимаюсь программированием. Хотя, Математику я также люблю. Да и вообще считаю, что саморазвитие — главное.
Начинал я с C#-па и Unity (да, я тоже хотел делать игры). Сейчас, в основном, занимаюсь веб-разработкой, но больше мне нравится писать системные приложения. В свои 14.83 года, я могу сказать, что понимаю, наверное, все существующие парадигмы программирования, знаю 10+ ЯП, в список которых входит Haskell, C++ (умею даже compile-time мета-функции писать), C, Python, JavaScript и Lisp (да, Lisp). И да, я также прочитал ~100 книг по разным тематикам (большая часть — IT, Математика, и Self Improvement) за последние 3 года.
Мне кажется, что для того, чтобы лучше уметь учиться программированию, следует изучить то, как работают такие вещи как компилятор, виртуальная машина и ОС. Поверхностное (может быть и нет) знание данных вещей будет сильно помогать прогрессу, да и вообще работе в целом.
Нашему поколению повезло, — у нас есть огромное количество бесплатных ресурсов, которые предоставляют структурированную информацию и позволяют изучить то, что тебе интересно. Правда, конечно, у очень малого кол-ва людей находятся силы на то, чтобы побороть свое желание выработать дополнительный дофамин посредством игры в какую-нибудь Доту, — практически никто такими возможностями (познание нового материала посредством использования современных ресурсов) сейчас не пользуется.
Таких школьников как мы, — действительно мало. Это меня сильно огорчает.
К тому же не все используют Android, а в айфонах давно уже для каждого приложения выделяется собственная изолированная файловая система.
Обычно комментарии в таких случаях не считаются. Все современные инструменты анализа объема кода пропускают всё, что находится под комментарием, т.к. оно никак не влияет на сложность программы.
Для того, чтоб язык был полезен хоть кому-то после выхода (кроме самого разработчика), он должен обладать некоторым количеством отличающих черт, каждая из которых хоть как-то упрощала б задачу реализации программного обеспечения.
Извините, конечно, но Вы представили еще один generic язык, который ничего особо нового и не дает людям. Однако, для всего нужен опыт, и, даже один законченный ЯП, я уверен, смог Вас очень многому об этой области CS научить, и, следовательно, следующая попытка будет уже лучше. Нужно просто сделать его уникальным и полезным.
А вообще, могу точно сказать, что 99% всех программистов никогда в своей жизни не реализуют ничего своего и не напишут об этом статью. К тому же Вы за эту статью (скорее всего) получили приглашение на Хабр. Так что поздравляю!
Да, конечно, в указанных в статье случаях компилятор это делает за вас. Но, однако, бывают и более нетривиальные случаи. Правда?
Должен ли компилятор делать такие оптимизации в данной функции, например?
А вот нет: указатель
a
может ссылаться на регион в памяти, принадлежащейs
. В процессе исполнения этого цикла мы модифицируемa
, и, следовательно, можем изменить расположение'\0\'
вs
, которое, в свою очередь, может поменять результат исполнения выраженияstrlen(s)
, из-за чего компилятор, конечно, оптимизировать этот код не будет.Не нужно постоянно полагаться на компилятор, т.к.
Сначала VSCode, потом GitHub, дальше публикация сорсов WinFile, а теперь это… Будущее!
В сериале "Кремниевая Долина" был точно такой же робот! А что пугает больше всего, тот человек, который в телепередаче с этим гуманоидом заводил отношения, очень сильно похож на одного из мировых экспертов по ИИОН, о котором упоминается в статье!
ИИ также лечить уже практически полностью умеет...
Твоя программа не реализовывает спецификацию утилиты
yes
. В статье написано ведь, что утилита должна принимать аргумент коммандной строки, заменяющий"y"
в случае наличия.Пользуюсь TS в своих веб-проектах.
Причиной этому можно назвать то, что мне конкретно надоело тратить 80% усилий при разработке веб-приложений на то, чтобы догадаться, почему у меня
undefined is not a function
кидается в консоль, когда я нажимаю на кнопку, которая "вроде-бы" должна работать.Помоему, данная последовательность действий ничего полезного из себя не представляет. Второй пункт, скорее всего, нужно заменить на что-то типа "запустить тесты".
Или, может, под "сборкой проекта" вы подразумевали процесс генерации Makefile'а?
Не только СССР-овские вузы использовали данную нотацию.
Из Википедии:
У меня был похожий опыт. Я, в промежутке 2013-2015 гг. играл в Доту. На это у меня ушло ~2500 часов. Я не могу сказать, что мне это ничего не дало, но, конечно, то, что я получил, можно было-бы получить за намного меньшее количество времени.
Хотя, исходя из Эффекта Бабочки, можно сказать, что всё, что мы делали раньше, имеет огромное влияние на то, чем мы занимаемся сейчас. Поэтому, наверное, я должен быть благодарен тем, проведенным в этой игре, часам :)
А вот на мой английский и логику повлиял больше всего именно Minecraft, в который я играл с 2010 до 2012 гг. До сих пор вспоминаю эти времена с большим удовольствием :)
Молодец, так держать!
Хочу поделится своим, довольно-таки похожим, опытом.
Я сейчас учусь в 9-ом классе. Также, как и автор статьи, занимаюсь программированием. Хотя, Математику я также люблю. Да и вообще считаю, что саморазвитие — главное.
Начинал я с C#-па и Unity (да, я тоже хотел делать игры). Сейчас, в основном, занимаюсь веб-разработкой, но больше мне нравится писать системные приложения. В свои 14.83 года, я могу сказать, что понимаю, наверное, все существующие парадигмы программирования, знаю 10+ ЯП, в список которых входит Haskell, C++ (умею даже compile-time мета-функции писать), C, Python, JavaScript и Lisp (да, Lisp). И да, я также прочитал ~100 книг по разным тематикам (большая часть — IT, Математика, и Self Improvement) за последние 3 года.
Мне кажется, что для того, чтобы лучше уметь учиться программированию, следует изучить то, как работают такие вещи как компилятор, виртуальная машина и ОС. Поверхностное (может быть и нет) знание данных вещей будет сильно помогать прогрессу, да и вообще работе в целом.
Нашему поколению повезло, — у нас есть огромное количество бесплатных ресурсов, которые предоставляют структурированную информацию и позволяют изучить то, что тебе интересно. Правда, конечно, у очень малого кол-ва людей находятся силы на то, чтобы побороть свое желание выработать дополнительный дофамин посредством игры в какую-нибудь Доту, — практически никто такими возможностями (познание нового материала посредством использования современных ресурсов) сейчас не пользуется.
Таких школьников как мы, — действительно мало. Это меня сильно огорчает.
Всё-таки 2 байта для одного, и 3 байта для другого…
Очень странно...
Мне четырнадцать лет, а печатаю что-то окола 100 слов в минуту.
Со мной что-то явно не так...
Пойду дальше теорию категорий учить...