Хочу выучить ЯП
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 00:05 | Сообщение # 41 |
постоянный участник
Сейчас нет на сайте
| Quote (mrResident) Хочешь сказать что в школе стоит изучать сразу asm? А почему бы и нет? Если есть способности к программированию и желание, то можно и выучить! Когда учишь АСМ ломаются все стереотипы и правила о программировании, структура кода и его построение координально отличаются! Поетому я считаю стоит сначала выучить, что-то легкое для того, чтобы выучить основы алгоритмизации, потом выучить АСМ и уже потом хвататся за плюсы, которые сочитают в себе черты и высокоуровнего программирования и низкоуровневого!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
mrResident | Дата: Понедельник, 23 Января 2012, 00:33 | Сообщение # 42 |
постоянный участник
Сейчас нет на сайте
| masb8ly-GC, все что тобой было сказано выше это конечно очень хорошо, но на практике получается совсем другое. Ты то сам как, пробовал на asm что-нибудь написать работающее? Ассемблер в первую очередь это знание аппаратных средств, будь то микропроцессор или микроконтроллер. И еще, народ, не путайте с и с++ это довольно разные ЯП, отличие заключается в подходе программирования, с - это язык процедурного программирование, вот он как раз является нечто средне между ассемблером и ОЯП (объектный язык программирование), а вот с++ - это чистейшей воды ОЯП. Проще говоря на С хорошо писать драйвера, да и вообще все что необходимо для доступа к аппаратным средствам ПК, а вот на С++ пишется все остальное. В общем читайте Бьерн Страуструп, Герберта Шилдта а так же отцов-основателей с/с++ Керниган и Ричи. Для всех интересующих могу дать ссылку для моей подборки доков по различным ЯП, писать в ЛС.
Укроп головного мозга - болезнь тяжелая, но излечимая!
Сообщение отредактировал mrResident - Понедельник, 23 Января 2012, 08:09 |
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 01:25 | Сообщение # 43 |
постоянный участник
Сейчас нет на сайте
| Пробовать я пробовал и получалось, не ОС конечно, но все же небольшие програмки. Да ошибся плюсы и си перепутал, но они и похожи очень. Зная Си перейти на плюсы дело пары дней...
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
mrResident | Дата: Понедельник, 23 Января 2012, 08:07 | Сообщение # 44 |
постоянный участник
Сейчас нет на сайте
| Quote (masb8ly-GC) Зная Си перейти на плюсы дело пары дней Это да, синтаксис одинаковый, подход к программированию разный.
Укроп головного мозга - болезнь тяжелая, но излечимая!
|
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 16:51 | Сообщение # 45 |
постоянный участник
Сейчас нет на сайте
| Quote (mrResident) Это да, синтаксис одинаковый, подход к программированию разный. Ну если их рассматривать на одной "полочке", то да. Но если учитывать, что С++ является сиподобным, а точнее ветвью си с исключительно высокоуровневым программированием направленной на выполнение задач с высокой скоростью выполнения, то нет. Это мое личное мнение, поетому возможно оно ошибочно!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
Stage | Дата: Понедельник, 23 Января 2012, 17:27 | Сообщение # 46 |
постоянный участник
Сейчас нет на сайте
| Quote Когда учишь АСМ ломаются все стереотипы и правила о программировании, структура кода и его построение координально отличаются! Полная ерунда. И сишечка, и паскаль и уж тем более ассемблер - типичные представители императивного подхода. Разница между конечно очень велика, ломает стереотипы лол. Ты на ассемблере то писал что-нибудь сложней хелоуворлда, м? Все велосипеды уже есть в виде макросов в том же масме. Quote Проще говоря на С хорошо писать драйвера Ну и что мне мешает писать драйвера на С++ ? Более того, есть же ядерные фреймворки. Уж там то точно все заворачивают в классы, а не лепят тысячи процедур на все случаи.
|
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 17:44 | Сообщение # 47 |
постоянный участник
Сейчас нет на сайте
| Quote (Stage) Полная ерунда. И сишечка, и паскаль и уж тем более ассемблер - типичные представители императивного подхода. Разница между высокоуровневым программированием и низкоуровневым велика! И принципы программирования на них отличаются. Спорить не буду и не хочу!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
Stage | Дата: Понедельник, 23 Января 2012, 17:47 | Сообщение # 48 |
постоянный участник
Сейчас нет на сайте
| Quote Разница между высокоуровневым программированием и низкоуровневым велика! И принципы программирования на них отличаются. А теперь приведи пример, который покажет существенные отличия в подходах между сишкой/паскалем и ассемблером.
Сообщение отредактировал Stage - Понедельник, 23 Января 2012, 17:48 |
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 17:52 | Сообщение # 49 |
постоянный участник
Сейчас нет на сайте
| Quote (masb8ly-GC) Спорить не буду и не хочу! Вам эта фраза не говорит о том, что я не намерен дальше продолжать разговор по этому поводу?
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
Сообщение отредактировал masb8ly-GC - Понедельник, 23 Января 2012, 17:53 |
|
| |
Stage | Дата: Понедельник, 23 Января 2012, 17:54 | Сообщение # 50 |
постоянный участник
Сейчас нет на сайте
| Quote Вам эта фраза не говорит о том, что я не намер дальше продолжать разговор по этому поводу? Ты слился как классический gcup-искперт, можешь дальше травить свои басни одноклассникам.
|
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 18:07 | Сообщение # 51 |
постоянный участник
Сейчас нет на сайте
| Нет, просто я выше того чтобы спорить! Я говорю только со своей точки зрения и ничего больше! С точки зрения начинающего программиста, который немного знаком с этими языками! Добавлено (23.01.2012, 18:07) --------------------------------------------- И кстати хочу заметить, что я не говорил, что я эксперт и много знаю... Я говорил только по мере своих знаний!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
SWFcreator | Дата: Понедельник, 23 Января 2012, 18:31 | Сообщение # 52 |
участник
Сейчас нет на сайте
| Quote (masb8ly-GC) А почему бы и нет? А зачем? По-моему, даже Паскаль, преподаваемый в некоторых школах, лишний. Я вот в 9 классе в фотошопе кисточкой ляпал и не чувствовал себя обделенным. Это предмет строго по специальности. Нечего всем мозги парить, кому интересно, пусть читает книжки или ходит на курсы. Quote (masb8ly-GC) Зная Си перейти на плюсы дело пары дней... Два дня назад одногруппник рассказывал мне, что он разобрал циклы в Паскале. Сразу говорю, с Паскалем я знаком лишь на уровне объявления переменных на парах, дома для себя учу С++. Рассказывал, что есть такой цикл until и в нем есть переменная, и она прибавляется. Я ничего не понял и спросил гугл. По первому же запросу стало понятно, что это аналог do-while на Си. Вот так вот разобрал, что не смог даже сути объяснить. Примерно так же можно перейти на С++ за пару дней, не лучше.
|
|
| |
TimKruz | Дата: Понедельник, 23 Января 2012, 18:42 | Сообщение # 53 |
старожил
Сейчас нет на сайте
| Quote (Andrey_M) А можно ли на паскале сделать игру, простите за нубство? Хотя бы в окне консоли... Да легко. Очень простую - за несколько минут на TurboPascal/FreePascal. В текстовом/графическом режиме... Можно и хорошую игру сделать, но выглядеть будет очень старо, в "стиле DOS"... Quote (Stage) А теперь приведи пример, который покажет существенные отличия в подходах между сишкой/паскалем и ассемблером. На ассемблере можно перезаписывать код программы прямо в оперативной памяти, делать разные трюки, которые в паскале/си проблематичны, если возможны. В паскале/си можно вставлять код на ассемблере. Да и вообще, обычно паскаль/си не заставляет во время написания программы думать о том, о чём заставляет думать ассемблер, т.е. автоматизирует, упрощает или делает бессмысленными эти вещи (распределение памяти под программу, скорость алгоритмов, выравнивание стека, ну и так далее). Например, команда на паскале write('blabla') выглядит простой и понятной, в то время как на ассемблере нужно знать, где и как хранить эту строку, как правильно вызывать, не забыть поставить закрывающий символ, потом выполнить определённое прерывание MS-DOS (ещё и код запомнить надо) либо написать кучу кода, используя исключительно прерывания BIOS.
|
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 19:03 | Сообщение # 54 |
постоянный участник
Сейчас нет на сайте
| Quote (SWFcreator) Рассказывал, что есть такой цикл until и в нем есть переменная, и она прибавляется. Я ничего не понял и спросил гугл. По первому же запросу стало понятно, что это аналог do-while на Си. Вот так вот разобрал, что не смог даже сути объяснить. Примерно так же можно перейти на С++ за пару дней, не лучше. Ну помоему и по названию ясно, что эти цикл одинаковы... until = до тех пор пока, do while = делать, пока...
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
SWFcreator | Дата: Понедельник, 23 Января 2012, 19:19 | Сообщение # 55 |
участник
Сейчас нет на сайте
| Quote (masb8ly-GC) Ну помоему и по названию ясно, что эти цикл одинаковы... until = до тех пор пока, do while = делать, пока... Я этого слова не знаю. И он сразу начал рассказывать мне о какой то переменной в цикле, после чего у меня пошли ассоциации с for. Но я рассказал это для того чтобы показать, что значит разобрать за день. Для того чтобы говорить "я разобрал", нужно хотя бы уметь сформулировать, что ты разобрал .
Сообщение отредактировал SWFcreator - Понедельник, 23 Января 2012, 19:23 |
|
| |
Stage | Дата: Понедельник, 23 Января 2012, 20:37 | Сообщение # 56 |
постоянный участник
Сейчас нет на сайте
| Ну наконец-то TimKruz пожаловал. Гвоздь программы. Quote На ассемблере можно перезаписывать код программы прямо в оперативной памяти, делать разные трюки, которые в паскале/си проблематичны, если возможны. Перезаписать код программы я могу и на сишке, какую роль здесь играет язык? Что за хитрые трюки можно делать на ассемблере, что их нельзя осуществить на том же С. Давай примеры кода, а то вода пока что.
Quote Да и вообще, обычно паскаль/си не заставляет во время написания программы думать о том, о чём заставляет думать ассемблер, т.е. автоматизирует, упрощает или делает бессмысленными эти вещи Ключевое слово в моем посте подход. Речь шла об императивной парадигме. Все что мы делаем - это так или иначе манипулируем байтами. Всякие там := можно расценивать как обычный синтаксический сахар.
Quote Например, команда на паскале write('blabla') выглядит простой и понятной, в то время как на ассемблере нужно знать, где и как хранить эту строку, как правильно вызывать, не забыть поставить закрывающий символ, потом выполнить определённое прерывание MS-DOS (ещё и код запомнить надо) либо написать кучу кода, используя исключительно прерывания BIOS. Ну вот это прям жирнейший перебор. Твое знакомство с ассемблером застряло где-то на уровне 90х. MS-DOS, BIOS прерывания Ах да, хранить строку. Вот тебе современный пример на фасме. Code include 'win32ax.inc'
.code
start: invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK invoke ExitProcess,0
.end start invoke - макрос, который кладет аргументы на стек и делает call.
|
|
| |
Andrey_M | Дата: Понедельник, 23 Января 2012, 21:07 | Сообщение # 57 |
старожил
Сейчас нет на сайте
| Quote (TimKruz) Да легко. Очень простую - за несколько минут на TurboPascal/FreePascal. В текстовом/графическом режиме... Можно и хорошую игру сделать, но выглядеть будет очень старо, в "стиле DOS"... А рпг можно сделать? И вообще... Пока я не глубоко изучать начал, скажите: что проще и полезнее Паскаль или си ++
ЪЪЪЪ! Лучшая благодарность - плюс в репутацию :-)
|
|
| |
masb8ly-GC | Дата: Понедельник, 23 Января 2012, 21:26 | Сообщение # 58 |
постоянный участник
Сейчас нет на сайте
| Паскаль проще, но если планируешь использовать для программирования игр, то лучше С++, хотя оба языка довольно функциональны! Тут кому как удобнее!
Backend Developer ESIS Client Side Developer Room8Studio Technical Leader Lucid Reality Labs Chief Technology Officer The Intruders Chief Technology Officer RoyalePlay Games
|
|
| |
mrResident | Дата: Понедельник, 23 Января 2012, 21:35 | Сообщение # 59 |
постоянный участник
Сейчас нет на сайте
| Вот, порылся на винте и достал из недр лабораторку по системному программированию (3 курс универа), вот кусок кода от туда Code OUT_TEXT macro Color,Length,Text,POS ; Вывод строки символов с заданным цветом PUSH AX ; => Color - цвет строки символов PUSH BX ; => Length - длина строки PUSH CX ; => Text - выводимая строка символов PUSH DI ; => POS - позиция внутри строки MOV BL,Color XOR CX,CX MOV CL,Length MOV BH,00h XOR AX,AX MOV AL,Length SUB AL,01h MOV DI,AX XOR AX,AX MOV AL,POS ADD DI,AX @OUT_FIL: MOV AH,09h MOV AL,Text[DI] INT 10h DEC DI LOOP @OUT_FIL POP DI POP CX POP BX POP AX endm чистейший asm, ни капли win api Вспоминаю, когда получил задание для лабораторку, подумал что с моим почти нулевым знанием asm нереально что-то сделать, ан нет, сделал же и причем сам, а не тупо копипастом
Укроп головного мозга - болезнь тяжелая, но излечимая!
|
|
| |
noTformaT | Дата: Понедельник, 23 Января 2012, 22:09 | Сообщение # 60 |
Ukrainian independent game developer
Сейчас нет на сайте
| ммм, что касается преломления стереотипов и прочей лабуды.
Я не хорошо знаю современный асм (я кое как помню асм для платформы 8086), но мне интересно как на асме решить следующую задачу. Надо описать базовый интерфейс ProtoInterface. В интерфейсе ProtoInterface, определить поведение, тоесть описать два метода, первый medotA - закрытый, второй medotB - открытый. Описать базовый класс ProtoClass который будет наследовать поведение (имплементация ) от интерфейса ProtoInterface, и реализовать унаследованное поведение, пусть там будет просто return. Я не говорю что это нереализуемо на современном асме, я просто не знаю, есть ли там такие возможности, мне просто интересно. очень хочется увидеть код.
Я конечно понимаю что тут ООП, но это как ни есть преломление стереотипов, например для ас3 или тех же джава программистов, ну и с++ сюда можно присобачить и кучу других ооп языков.
@noTformaT
|
|
| |
|