Читайте также:
|
|
В последнее время все чаще требованием при разработке сайта становится бестабличная или «дивная» верстка. Оба термина стали чрезвычайно популярны, несмотря на то, что они в корне неверны.
Изначально, таблицы были выбраны дизайнерами и разработчиками для верстки по одной единственной причине — не существовало других средств реализации хоть сколько-нибудь сложных макетов. Со временем таблицы стали нормой и остаются ею до сих пор. Но мы уже не в девяностых и браузеры, которые значатся в наших технических заданиях, способны интерпретировать CSS на том уровне, который необходим для более корректной, структурированной и современной верстки.
Именно ее мы называем семантической. Слово на первый взгляд довольно расплывчато, но в то же время лишено недостатков более популярного термина «бестабличная», который подразумевает всего лишь отказ от использования таблиц при реализации макетов. На самом деле все куда сложнее. Под семантической версткой мы подразумеваем следующее:
1. Таблицы используются для табличных данных, а не для визуального позиционирования элементов. К сожалению, мы живем не в идеальном мире и не всегда удается обойтись без этого архаизма, многие макеты просто требуют табличного поведения. Но перед тем как использовать таблицу не по назначению, каждый разработчик должен не раз подумать и попытаться избежать этого. Во многих случаях это вполне реально.
2. Каждый элемент HTML-кода должен нести структурный смысл. Наилучший способ этого добиться — просмотреть вашу страницу с отключенным CSS. Если списки визуально остались списками, а заголовки заголовками, то вы уже близки к семантике, к которой следует стремиться любому профессиональному верстальщику.
3. Разрабатываемый вами код соответствует стандартам (X)HTML и CSS. Семантика невозможна без валидности, несмотря на явную разность этих двух понятий. Вы можете сверстать валидный сайт, но без структурной разметки это будет всего лишь популизм.
XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного типа, используя для этого произвольный набор инструкций. Разработчиков Интернет приложений, пытающихся на практике использовать новую технологию, могут заинтересовать конкретные вопросы, связанные с проблемами создания, обработки XML-документов, их отображения на стороне клиента.
Язык схем DTD (DTD schema language) — искусственный язык, который используется для записи фактических синтаксических правил метаязыков разметки текста SGML и XML. С момента его внедрения другие языки схем для спецификаций, такие как XML Schema и RELAX NG, выпускаются с дополнительной функциональностью.
DTD описывает схему документа для конкретного языка разметки посредством набора объявлений (объектов-параметров, элементов и атрибутов), которые описывают его класс (или тип) с точки зрения синтаксических ограничений этого документа. Также DTD может объявлять конструкции, которые всегда необходимы для определения структуры документа, но, зато, могут влиять на интерпретацию определённых документов.
XML Schema — язык описания структуры XML-документа. Спецификация XML Schema является рекомендацией W3C.
Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.
После проверки документа на соответствие XML Schema читающая программа может создать модель данных документа, которая включает:
Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.
Другим удобством XML Schema является то, что один словарь может ссылаться на другой, и, таким образом, разработчик может использовать уже существующие словари и легче устанавливать и распространять стандарты XML структуры для определённых задач (например, словарь протокола SOAP).
Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (X ML S chema d efinition).
CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля.
13. Объясните принципы декларативного стиля программирования. Лог. прогр. — парадигма, основанная на автоматическом док-ве теорем; раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Prolog - язык прогр-ия, используемый для решения задач, в которых действуют объекты и отношения между этими объектами. Программа на Prolog'е состоит из неск секций (необязательных): DOMAINS - секция описания доменов (типов). Применяется, если в программе используются нестанд. домены. PREDICATES - секция описания предикатов. Применяется, если в программе используются нестанд предикаты. CLAUSES - секция предложений. Записываются предложения: факты и правила вывода. GOAL - секция цели. Записывается внутренний запрос. Стоит различать 2 уровня смысла программы на Прологе: декларативный и процедурный. Декларативный касается отношений, определенных в программе. Декл-ый смысл определяет, что должно быть результатом работы программы. Процедурный смысл определяет еще и как этот результат был получен, т. е. как отношения реально обрабатываются пролог - системой. Программа на прологе состоит из предложений 3 видов: факты, правила, запросы. Все предложения строятся из термов, синтаксических единиц. Константы - поименованные конкретные объекты или отношения. Переменные - для обозначения объектов, значения которых меняются в ходе выполнения программы. Структура - это единый объект, состоящий из совокупности других объектов, наз-ых компонентами. Компоненты могут быть также структурами.Переменные могут быть свободными (нет никакого значения, неконкретизированная) или связанными (есть какое-то значение и связана с опр-ым объектом). Областью действия переменной в Прологе является одно предложение. В разных предложениях может использоваться одно имя переменной для обозначения разных объектов. Исключением из правила определения области действия является анонимная переменная ("_"). Анонимная переменная применяется в случае, когда значение переменной не важно. Каждая анонимная переменная - это отдельный объект. «=» в ПроЛоге используется не как оператор приравнивания, а как оператор унифицирования. Унификация – это приведение выражений справа и слева от знака унификации к одному значению. Если в операции уни-ии участвуют 2 переменных, и каждая связана со своим значением, то выполняется их сравнение. Если одна переменная не связана, то выполняется приравнивание ей значения. А если в унификации участвуют выражения с наличием несвязанных частей, то эти части принимают значения из таких же частей другого выражения. При этом ПроЛог пытается привести оба выражения к одному значению. Примеры «приравнивание»: Goal А = 5, А = Б write(А, “,”, Б). ПроЛог выдаст на экран: 5,5. В процессе вычисления цели пролог проводит перебор вариантов, в соответствии с установленным порядком. Цели выполняются посл-но, а в случае неудачи происходит откат к предыдущей цели (backtracing). Часто требуется вмешаться в перебор, ограничить его, исключить некоторые цели. Для этой цели в пролог введена специальная конструкция cut - "отсечение", обозначаемая как "!". Cut подсказывает прологу "закрепить" все решения предшествующие появлению его в предложении. Это означает, что если требуется бэктрекинг, то он приведет к неудаче (fail) без попытки поиска альтернатив. Пример. Найти минимальный элемент из двух. minimum(X, Y, X):- X<=Y,!. minimum(X, Y, Y):- Y. Механизм поиска с возвратом. Пролог при поиске решения задачи использует метод проб и возвращений назад, как например при поиске выхода в лабиринте; этот метод называется поиск с возвратом. Если, начиная поиск решения задачи (или целевого утверждения), Пролог должен выбрать между альтернативными путями, то он ставит маркер у места ветвления (точкой отката) и выбирает первую подцель, которую и станет проверять. Если данная подцель не выполнится (тупик в лабиринте), Пролог вернется к точке отката и попробует проверить другую подцель. Можно сформулировать основные правила поиска с возвратом: 1) Цели должны быть доказаны по порядку, слева, направо. 2) Для доказательства некоторой цели предложения просматриваются в том порядке, в каком они появляются в тексте программы. 3) Для того, чтобы доказать головную цель правила, необходимо доказать цели в теле правила. Тело правила состоит, в свою очередь из целей, которые должны быть доказаны. 4) Цель считается доказанной, если с помощью соответствующих фактов доказаны все цели, находящиеся в листьевых вершинах дерева целей. Откат дает возможность получить много решений в одном вопросе к программе, а рекурсия позволяет использовать в процессе определения предиката его самого. Рекурсивная процедура - вызывающая сама себя до тех пор, пока не будет соблюдено некоторое условие, которое остановит рекурсию. Такое условие называют граничным. Рекурсия - хороший способ для решения задач, содержащих в себе подзадачу такого же типа. Пример рекурсии: найти факториал n!. Условия, при соблюдении которых рекурсия в Prolog'е становится хвостовой (не расходует стек при неогр-ом кол-ве рекурсивных вызовов: рекурсивный вызов должен быть последней целью в хвостовой части правила вывода; перед рекурсивным вызовом не должно быть точек возврата (это условие хвостовой рекурсии специфично для Prolog'а).
Дата добавления: 2015-11-14; просмотров: 78 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Классифицируйте режимы работы микропроцессора. Объясните организацию оперативной памяти и систему прерываний. | | | Проанализируйте задачи искусственного интеллекта. |