15:28

Хочу быть тостером, чтоб жарить сразу с двух сторон.
[-]

Добрый день.
Проблема:есть код программы на С++,с которым нужно разобраться в кратчашие сроки человеку без навыков программирования.Есть ли справочники просто по синтаксису,чтобы "пословно" код и переводить?Знаю,что вопрос глупый,но нужно просто в кротчайшие сроки.

@темы: Косарь

Комментарии
02.07.2010 в 15:35

Магистр Флуда
Англо-русский словарь
02.07.2010 в 15:36

Магистр Флуда
If ololo == 1 then lololo == 2
else pisch = True

Если Ололо = 1, тогда лололо =2, иначе пыщь - истина
02.07.2010 в 15:41

Смотря что за код.
02.07.2010 в 15:46

Sanctus Satanas
Глупая затея, имхо. Всё равно запутаетесь сразу.
Код-то можете показать? )
02.07.2010 в 15:53

чтобы "пословно" код и переводить

Смотря куда переводить. Компилятор Си, например, переводит текст на Си в исполняемый код. Если в ассемблере вы разбираетесь лучше — это может быть вариант.
02.07.2010 в 15:57

Хочу быть тостером, чтоб жарить сразу с двух сторон.
проблема в том,что он не 1.и не короткие они.
что,неужели нет вариантов?
02.07.2010 в 16:05

Не совсем понятно, что ты хочешь найти. Чудо книжку, которая позволит, не зная Си, понять программу на Си?

Справочники по синтаксису, конечно, есть, но они ничего не дадут, т.к. чтобы понять программу, нужно знать в первую очередь не синтаксис.
02.07.2010 в 17:28

Don't stop the music.
[cookie whore]
Для того чтобы разобраться в программе написанной на языке C++ (да в и в любом другом ЯП) надо не "пословно" каждое служебное слово в справочнике смотреть а иметь представление о том что такое программа, что такое алгоритм, каковы есть основные управляющие конструкции в программе и конечно писать самому программы. Для языка C++, нужно понимать ещё и что такое классы и что они умеют (и не только это). Для всех этих целей существуют учебники.
02.07.2010 в 21:42

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

ок,тогда посоветуйте пожалуйста хороший,просто учебник по срр
02.07.2010 в 22:54

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

даже голые си, которые сами по себе просты как гвоздь без шляпки, могут основательно прогреть мозг, а уж плюсы, где одних паттернов более 9000, это вообще язык не для средних умов.
02.07.2010 в 23:16

Хочу быть тостером, чтоб жарить сразу с двух сторон.
ehlo_kitty
средних умов?
02.07.2010 в 23:29

не для них
03.07.2010 в 09:59

Хочу быть тостером, чтоб жарить сразу с двух сторон.
:)
03.07.2010 в 12:55

Sanctus Satanas
Вообще, чтобы разобраться в какой-то программе, просто знания языка недостаточно.

Могу привести пример немного не про Си, но тоже весёлый.
В ассемблере есть такая инструкция — xor eax, eax.
Если человек знает язык, то он сможет сказать, что здесь производится операция исключающего «или» над регистрами EAX и EAX, то есть над ним самим, результат которой будет записан в первый операнд, т.е. опять же в EAX.
Если человек имеет представление о булевой алгебре, то он сможет сказать, что при любом значении EAX такая операция даст результат 0, т.е. регистр обнулится.
Но вот для ответа на вопрос, для чего это может потребоваться и почему это лучше, чем mov eax, 0 (поместить значение 0 в регистр EAX), этих знаний не хватит.
А на самом деле это просто пример оптимизации: xor eax, eax занимает два байта, а mov eax, 0 — пять байт. :)


С другой стороны, то, как это описал ehlo_kitty, тоже перебор. Для того, что бы писать на C++ или ещё на чём угодно другом, никаких «паттернов» знать не нужно. Для понимания кода, в принципе, тоже. Необходимость появляется только при коллективной разработке. И то — смотря, что за команда.
03.07.2010 в 13:39

хелло ворлд можно написать быстро почти на любом языке, но как только проект перерастает скажем килобайт десять кода просто писать операторы становится совершенно недостаточно. а в плюсах например есть перегрузка операторов, в результате чего строка a = b + c может означать _вообще что угодно_.
03.07.2010 в 13:47

Хочу быть тостером, чтоб жарить сразу с двух сторон.
мне просто нужен хороший самоучитель)
03.07.2010 в 21:38

Sanctus Satanas
ehlo_kitty
Она может при определённой степени извращённости авторов означать что угодно и в голых сях. Дефайн никто не отменял. )
04.07.2010 в 11:20

да, да
#define TRUE FALSE // счастливой отладки

голые си страшны не этим, там сразу же начинается адовая свистопляска с указателями (а иногда и goto) например
05.07.2010 в 10:46

Sanctus Satanas
ehlo_kitty
Ну... дефайн тру фолс это, по крайней мере, очевидно. )
Мне больше нравится что-то типа такого:

#define FOUR 2+2 // счастливой отладки при использовании без скобок ;)

Насчёт указателей не вижу проблемы, например. Ну и с goto тоже. Вообще можно на любом языке написать так, что сам автор не разберётся, а работать будет в зависимости от фазы Луны. Если код достаточно качественный — всё не так плохо, имхо.
05.07.2010 в 11:03

это вы не видите проблемы потому что сами на сях не пишете. возьмите исходники апача и попробуйте там что-нибудь понять например. а при самостоятельной разработке чрезвычайно спекает ручная работа с памятью например. null pointer во все поля НЕ ХОТЕТЬ!!!!1
05.07.2010 в 11:51

Sanctus Satanas
Чтобы разбираться в исходниках апача нужно over 9000 времени, которого у меня нет, как и желания (кстати, я смысла тоже не вижу). Разбираться в чужом коде вообще геморно при любом раскладе, особенно, если есть проблемы с документацией, а автора нельзя пнуть лично на эту тему.
Если вернуться к сабжу, то я лично сомневаюсь, что [cookie whore] нужно было разбирать код апача, например.

Алсо, на тему извращений: __asm { }
05.07.2010 в 11:58

он не 1.и не короткие они

хз, "не короткий" может означать как 10К так и 10М.

__asm { }

при чём тут ассемблер то? это не язык программирования, это просто мнемоническая запись инструкций процессора.
05.07.2010 в 12:25

Sanctus Satanas
ehlo_kitty
Ну то есть по вашему с указателями и с работой с памятью проблемы есть, а если работать ещё более напрямую, то это просто мнемоническая запись инструкций процессора и, видимо, никаких проблем. Можно ещё пофлудить на тему того, что в CISC эти инструкции изначально сделаны максимально человекопонятными и на реальных цпу не реализованы напрямую. Или на тему того, что некоторые мнемоники можно записать двумя разными инструкциями без потери логики работы. Это к тому, что язык, а что нет; не залезая в вики, где будет написано, что машинный код тоже язык.

хз, "не короткий" может означать как 10К так и 10М.
Я склоняюсь к первому варианту. Х.з., автору виднее.
05.07.2010 в 12:26

Хочу быть тостером, чтоб жарить сразу с двух сторон.
нуну)
така самоучитель никто хороший не знает?
05.07.2010 в 12:35

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

Sanctus Satanas
ehlo_kitty
Ок, договорились. )

[cookie whore]
Мне навскидку вспоминается один очень бородатый текстик. Это если совсем плохо с пониманием сути. С плюсами там всё сильно сложнее.
05.07.2010 в 12:55

Хочу быть тостером, чтоб жарить сразу с двух сторон.
ахаха)
благодарю) но си++ нужен