Понеділок, 25.09.2017, 03:45

    37

    Головна | RSS

    Цікаво знати. - Форум

    [ Нові повідомлення · Учасники · Правила форуму · Пошук · RSS ]
    Сторінка 1 з 11
    Модератор форуму: Denyz 
    Форум » Для своїх » Різне » Цікаво знати. (Паска́ль)
    Цікаво знати.
    DenyzДата: Середа, 12.09.2007, 18:28 | Повідомлення # 1
    Ліс там----->>>
    Група: Администраторы
    Повідомлень: 57
    Репутація: 4
    Статус: Offline
    Паска́ль (англ. Pascal) — язык программирования общего назначения.

    Был создан Никлаусом Виртом в 1970, после его участия в работе комитета разработки стандарта языка Алгол, как язык для обучения процедурному программированию. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в P-код (аналог байт-кода, подобно языку Java).

    Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.

    Тем не менее, первоначально язык обладал множеством недостатков: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Полный разбор недостатков языка Паскаль был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования». Необходимо заметить, что многие перечисленные недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, основным языком программирования в академической среде 70-х был Фортран, обладавший гораздо более существенными недостатками, и Паскаль представлял собой значительный шаг вперед.

    Автор языка понимал недостатки созданного им языка, перестал его развивать и разработал языки Модула-2 и Оберон.

    Тем не менее, достоинства языка заставляли многие коммерческие и некоммерческие организации разрабатывать системы программирования на основе языка Паскаль.

    Из числа последних выделяется фирма Borland, Turbo Pascal (затем Borland Pascal) которой был значительно расширен, были устранены многие недостатки языка, добавлены новые возможности. Язык стал богаче, но одновременно, потерял переносимость и общность.

    Важным шагом в развитии языка, является появление свободного языка Паскаль GNU Pascal, который не только вобрал в себя черты других Паскалей, не только позволил наконец полностью отказаться от «грязных» приемов программирования, особенно присущих, скажем, Turbo Pascal, но и обеспечил черезвычайно широкую портабельность написанных на нем программ (более 20 различных платформ, под более чем 10 различными операционными системами).

    В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal. Развитием языка Borland Pascal является Object Pascal — версия языка Паскаль расширенная средствами объектно-ориентированного программирования. Последние версии Borland Pascal лежат в основе среды программирования Delphi.

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




    Повідомлення відредагував Denyz - Середа, 12.09.2007, 18:52
     
    DenyzДата: Середа, 12.09.2007, 18:52 | Повідомлення # 2
    Ліс там----->>>
    Група: Администраторы
    Повідомлень: 57
    Репутація: 4
    Статус: Offline
    Компиля́тор— транслятор, который осуществляет перевод всей исходной программы в эквивалентную ей результирующую программу на языке машинных команд.
    Большая часть компиляторов переводят программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен центральным процессором. Как правило, этот код также должен выполняться в среде конкретной операционной системы, поскольку использует предоставляемые ей возможности (системные вызовы, библиотеки функций). Архитектура (набор программно-аппаратных средств), для которой производится компиляция, называется целевой машиной.

    Некоторые компиляторы (например, Java) переводят программу не в машинный код, а в программу на некотором специально созданном низкоуровневом языке. Такой язык — байт-код — также можно считать языком машинных команд, поскольку он подлежит интерпретации виртуальной машиной. Например, для языка Java это JVM (язык виртуальной машины Java), или так называемый байт-код Java (вслед за ним все промежуточные низкоуровневые языки стали называть байт-кодами). Для языков программирования на платформе .NET Framework (C#, Managed C++, Visual Basic .NET и другие) это MSIL (Microsoft Intermediate Language, «Промежуточный язык фирмы Майкрософт»).

    Программа на байт-коде подлежит интерпретации виртуальной машиной, либо ещё одной компиляции уже в машинный код непосредственно перед исполнением. Последнее называеется «Just-In-Time компиляция» (JIT), по названию подобного компилятора для Java. MSIL-код компилируется в код целевой машины также JIT-компилятором, а библиотеки .NET Framework компилируются заранее).

    Для каждой целевой машины (IBM, Apple и т. д.) и каждой операционной системы или семейства операционных систем, работающих на целевой машине, требуется написание своего компилятора. Существуют также так называемые кросс-компиляторы, позволяющие на одной машине и в среде одной ОС получать код, предназначенный для выполнения на другой целевой машине и/или в среде другой ОС. Кроме того, компиляторы могут быть оптимизированы под разные типы процессоров из одного семейства (путём использования специфичных для этих процессоров инструкций). Например, код, скомпилированный под процессоры семейства i686, может использовать специфичные для этих процессоров наборы инструкций — MMX, SSE, SSE2.

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

    Структура компилятора

    Процесс компиляции состоит из следующих этапов:
    Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем.
    Грамматический анализ. Последовательность лексем преобразуется в дерево разбора.
    Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) — напр. привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то еще, удобным для дальнейшей обработки.
    Оптимизация. Выполняется удаление излишних конструкций и упрощение кода с сохранением его смысла. Оптимизация может быть на разных уровнях и этапах, напр. над промежуточным кодом или над конечным машинным кодом.
    Генерация кода. Из промежуточного представления выдается код на целевом языке.

    В конкретных реализациях компиляторов, эти этапы могут быть раздельны или совмещены в том или ином виде.

    Трансляция и компоновка

    Важной исторической особенностью компилятора, отраженной в его названии (англ. compile — собирать вместе, составлять), являлось то, что он мог производить и компоновку (то есть содержал две части — транслятор и компоновщик). Это связано с тем, что раздельная компиляция и компоновка как отдельная стадия сборки выделились значительно позже появления компиляторов, и многие популярные компиляторы (например, GCC) до сих пор физически объединены со своими компоновщиками. В связи с этим, вместо термина «компилятор» иногда используют термин «транслятор» как его синоним: либо в старой литературе, либо когда хотят подчеркнуть его способность переводить программу в машинный код (и наоборот, используют термин «компилятор» для подчеркивания способности собирать из многих файлов один).




    Повідомлення відредагував Denyz - Середа, 12.09.2007, 18:53
     
    DenyzДата: Неділя, 16.09.2007, 00:22 | Повідомлення # 3
    Ліс там----->>>
    Група: Администраторы
    Повідомлень: 57
    Репутація: 4
    Статус: Offline
    Обнаружение злого софта без использования антивируса

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

    Простые пользователи боятся вирусов как огня. Обвешав себя антивирусными программами, они надеются, что беда обойдет их стороной. Но зачастую больше помогают мозги, чем специализированное ПО (никогда жизни не пользовался антивирусами, кроме веб-сервисов проверки отдельных файлов: грамотно настроенный фаервол и прямые руки стоят больше, чем пожизненный ключ от AVP wink - прим. AvaLANche'а). В этой статье мы расскажем о том, как самостоятельно обнаружить факт инфицирования машины и постараться уничтожить опасность.

    Конь в пальто

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

    Симптомы того, что ты стал коневодом, просты и предсказуемы. Прежде всего, это угон мыла, аськи или пароля на FTP. Если автор трояна – приколист, то компьютер может себя странно вести: мышка бегает по рабочему столу как сумасшедшая, самопроизвольно открывается/закрывается CD-ROM, появляются левые окошки и много чего еще. Троян всегда открывает порты для связи с боссом, следовательно, появляется левый трафик. Если лампочки мигают, трафик на счетчиках растет, а ни одна программа для работы в инете не запущена, есть повод всерьез призадуматься. Конечно, это дело может быть просто в какой-нибудь службе, но лишний раз проверить не повредит, особенно если размеры отправленных данных не поддаются критике.

    Лошадь на твоем компьютере можно попробовать обнаружить на двух стадиях: когда программа еще под подозрением и во время работы. В первом случае надо просмотреть попавший к нам в руки файл в HEX-редакторе (после декомпрессии файла, т.к. обычно .exe'шники сжимают - прим. ред.) и проверить его на предмет наличия e-mail-адресов, доменных имен, настораживающих имен и расширений файлов типа .pwl. Также можно взглянуть на директорию импорта (структуру, которая содержит необходимую для работы программы информацию о системных функциях Windows). Если пришедший к тебе в письме .ехе’шник не предназначен для работы с сетью (например, сказано, что это навороченная демка), но почему-то активно использует сетевые API, то это, скорее всего, и есть наш клиент. Здесь прекрасно подойдет W32Dasm (www.expage.com/page/w32dasm). Он показывает все функции, которые использует прога. В крайнем случае, можно воспользоваться любым текстовым редактором и просмотреть подозреваемого на наличие подозрительных имен API. Это не дает 100%-ной гарантии, но в какой-то степени повышает надежность анализа. Подозрительные на этот счет функции можно видеть на врезке.

    При уже активном троянчике способы детектирования достаточно банальны. Первое, что делает любой пользователь, это смотрит ключи реестра, отвечающие за автозапуск, и список процессов на предмет инородных тел. В большинстве случаев это дает положительный результат. Желательно также просканировать порты и послушать активные соединения. Для дифференцировки злой проги и стандартных видовых файлов поможет дата создания. Коник будет отличаться по данному критерию от системного файла (хотя не факт). Из дополнительного софта могу посоветовать Trojan Remover (www.simplysup.com), он специализируется на отлове подобных тварей. Для реестра имеется NBG Clean Registry (dialupprof.newmail.ru/nbgcleanr.htm) - в него встроен монитор обращений к объекту его работы. Для проверки портов можно юзать Languard, Advanced Administrative Tools, SuperScan и XSpider. Они проверят порты, обычно занимаемые троянами, и сообщают о наличии левой активности. В частности, тулза с ламерской приставкой «супер», как ни странно, очень хороша, поскольку имеет краткое описание многих портов, и ты, даже при большом желании, не перепутаешь какой-нибудь сервис с троянцем.


     
    Форум » Для своїх » Різне » Цікаво знати. (Паска́ль)
    Сторінка 1 з 11
    Пошук:

    Форма входу
    Наше опитування
    Твій рівень знань
    Всього відповідей: 45
    Статистика