Понедельник, 29.04.2024
Мафия Клуб: Закрытый клуб
Меню сайта
Категории раздела
Техника [175]
Информационные технологии
Мини-чат
500
Наш опрос
Вы читаете наши новости
Всего ответов: 0
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Архив материалов
Lex — программа для генерации лексических анализаторов, обычно используемая совместно с генератором синтаксических анализаторов yacc. Lex был первоначально написан Эриком Шмидтом (Eric Schmidt) и Майком Леском (Mike Lesk) и является стандартным генератором лексических анализаторов в операционных системах Unix, а также включен в стандарт POSIX. Lex читает входной поток, описывающий лексический анализатор, и даёт на выходе исходный код на языке программирования C.

Структура lex-файла сделана подобно структуре yacc-файла; файл разделяется на три блока, разделённые строками, содержащими два символа процента:
Блок определений
%%
Блок правил
%%
Блок кода на Си
В блоке определений задаются макросы и заголовочные файлы. Здесь также допустимо писать любой код на Си — он будет скопирован в результирующий файл.
Блок правил — наиболее важная часть; она описывает шаблоны и ассоциирует их с вызовами. Шаблоны представляют собой регулярные выражения. Когда ан ... Читать дальше »
Категория: Техника | Просмотров: 298 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

yacc — компьютерная программа, служащая стандартным генератором синтаксических анализаторов (парсеров) в Unix-системах. Название является акронимом «Yet Another Compiler Compiler» («ещё один компилятор компиляторов»). Yacc генерирует парсер на основе аналитической грамматики, описанной в нотации BNF (форма Бэкуса-Наура) или контекстно-свободной грамматики. На выходе yacc выдаётся код парсера на языке программирования Си.

Yacc был разработан Stephen C. Johnson в AT&T для операционной системы Unix. Позже были написаны совместимые версии программы, такие как Berkeley Yacc, GNU bison, MKS yacc и Abraxas yacc (обновлённый вариант AT&T-версии с открытым исходным кодом также вошёл в проект OpenSolaris от Sun). Каждый вариант предлагал незначительные улучшения и дополнительные возможности по сравнению с оригиналом, но концепция осталась той же. Yacc также был переписан на других языках, включая Java, C#, Pascal, Ada, Ratfor, EFL, ML, Limbo, Erlang, Go и т. д.
< ... Читать дальше »
Категория: Техника | Просмотров: 295 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

goto (от англ. go to — «перейти на») — оператор безусловного перехода (перехода к определённой точке программы, обозначенной номером строки либо меткой) в некоторых языках программирования. В некоторых языках оператор безусловного перехода может иметь другое имя (например, jmp в языках ассемблера).

Как правило, оператор goto состоит из двух частей: собственно оператора и метки, указывающей целевую точку перехода в программе: goto метка. Метка, в зависимости от правил языка, может быть либо числом (как, например, в классическом Бейсике), либо идентификатором используемого языка программирования. Для меток-идентификаторов метка, как правило, ставится перед оператором, на который должен осуществляться переход, и отделяется от него двоеточием (метка:).

Действие оператора перехода состоит в том, что после его исполнения следующими будут исполняться операторы программы, идущие в тексте непосредственно после метки (до следующего оператора перехода, ветвления или ц ... Читать дальше »
Категория: Техника | Просмотров: 395 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Спагетти-код — плохо спроектированная, слабо структурированная, запутанная и трудная для понимания программа, особенно содержащая много операторов GOTO (особенно переходов назад), исключений и других конструкций, ухудшающих структурированность[1]. Самый распространённый антипаттерн программирования.

Спагетти-код назван так, потому что ход выполнения программы похож на миску спагетти, то есть извилистый и запутанный. Иногда называется «кенгуру-код» (kangaroo code) из-за множества инструкций jump.

В настоящее время термин применяется не только к случаям злоупотребления GOTO, но и к любому «многосвязному» коду, в котором один и тот же небольшой фрагмент исполняется в большом количестве различных ситуаций и выполняет очень много различных логических функций.

Спагетти-код обычно возникает:
от неопытности разработчиков;
от серьёзного прессинга по срокам, как установленного руководством (например, в принятой в компании системе мотивации на работу быст ... Читать дальше »
Категория: Техника | Просмотров: 318 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Станда́рт оформле́ния ко́да (станда́рт коди́рования, стиль программи́рования) (англ. coding standards, coding convention или programming style) — набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования. Наличие общего стиля программирования облегчает понимание и поддержание исходного кода, написанного более чем одним программистом, а также упрощает взаимодействие нескольких человек при разработке программного обеспечения

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

Образцом для стандарта кодирования может стать набор соглашений, принятых в какой-либо распространённой печатной работе по языку (например, стандарт кодировани ... Читать дальше »
Категория: Техника | Просмотров: 288 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Исхо́дный код (также исхо́дный текст) — текст компьютерной программы на каком-либо языке программирования или языке разметки, который может быть прочтён человеком. В обобщённом смысле — любые входные данные для транслятора. Исходный код транслируется в исполняемый код целиком до запуска программы при помощи компилятора, или может исполняться сразу при помощи интерпретатора.

Исходный код либо используется для получения объектного кода, либо выполняется интерпретатором. Изменения никогда не выполняются над объектным кодом, только над исходным, с последующим повторным преобразованием в объектный.

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

Кроме того, исходный ... Читать дальше »
Категория: Техника | Просмотров: 289 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Hyper-threading (англ. hyper-threading — гиперпоточность, официальное название — hyper-threading technology, HTT или HT) — технология, разработанная компанией Intel для процессоров на микроархитектуре NetBurst. HTT реализует идею «одновременной мультипоточности» (англ. simultaneous multithreading, SMT). HTT является развитием технологии суперпоточностиruen (англ. super-threading), появившейся в процессорах Intel Xeon в феврале 2002 и в ноябре 2002 добавленной в процессоры Pentium 4[1]. После включения HTT один физический процессор (одно физическое ядро) определяется операционной системой как два отдельных процессора (два логических ядра). При определённых рабочих нагрузках использование HTT позволяет увеличить производительность процессора. Суть технологии: передача «полезной работы» (англ. useful work) бездействующим исполнительным устройствам (англ. execution units).

HTT не реализована в процессорах серии Core 2 («Core 2 Duo», «Core 2 Quad»).

В процессора ... Читать дальше »
Категория: Техника | Просмотров: 354 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

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

Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами».

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

Многопоточность (как доктрину программирования) н ... Читать дальше »
Категория: Техника | Просмотров: 311 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Граф ожидания (или граф ожидания транзакций) — инструмент, используемый при разработке СУБД и многопоточных систем и используемый, в частности, для определения ситуации взаимной блокировки (deadlock). Фактически, граф ожидания транзакций представляет собой ориентированный двудольный граф, содержащий вершины двух типов:
вершины типа , соответствующие транзакциям или выполняющимся потокам. Они образуют первую долю графа.
вершины типа , соответствующие ресурсам и объектам, которые могут быть захвачены транзакциями. Они образуют вторую долю графа.

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

Ресурс, который не имеет ни одной входящей дуги, является свободным.
Если вершина-транзакция имеет некото ... Читать дальше »
Категория: Техника | Просмотров: 273 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

Взаи́мная блокиро́вка (англ. deadlock) — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.

0    Хочет захватить A и B, начинает с A    Хочет захватить A и B, начинает с B
1    Захватывает ресурс A    Захватывает ресурс B
2    Ожидает освобождения ресурса B    Ожидает освобождения ресурса A
3    Взаимная блокировка


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

Это слово означает такую ситуацию: система не «застревает» (как в обычной взаимной блокировке), а занимается бесполезной работой ... Читать дальше »
Категория: Техника | Просмотров: 294 | Добавил: ADMINISTRATOR | Дата: 03.10.2015 | Комментарии (0)

« 1 2 ... 12 13 14 15 16 17 18 »
Вход на сайт
Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Copyright Mafiaclub.at.ua © 2024