Форум программистов, компьютерный форум CyberForum.ru

Как создаются языки программирования? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Объясните пожалуйста зачем нужна структура класса iterator_traits. http://www.cyberforum.ru/cpp/thread1079722.html
Всем привет! Объясните пожалуйста зачем нужна структура класса iterator_traits. Ведь все тайпдефы, которые содержатся в этой структуре имеются в каждом стандартном контейнере. И код: template <class T> typename iterator_traits<T>::reference func(T iter_begin) { typename iterator_traits<T>::reference d = *iter_begin; return d; }
C++ Как объединить файлы? Допустим, я хочу сделать программу на с++, интерфейс к ней на с#. Как это осуществить? Спасибо! http://www.cyberforum.ru/cpp/thread1079632.html
Warning LNK4248: неразрешенная лексема TypeRef для "GLUquadric" C++
Добрый день господа эксперты! Помогите с таким вопросом компилятор выдает: frmMain.obj : warning LNK4248: неразрешенная лексема TypeRef (01000038) для "GLUquadric"; образ нельзя запустить. Но при этом след. код нормально работает: GLUquadric *qC1; qC1= gluNewQuadric();
Подскажите, пожалуйста, где можно подробнее узнать о библиотеки <ios> и параметре system(.); C++
заранее спасибо.
C++ Работа с мобильным устройством http://www.cyberforum.ru/cpp/thread1077859.html
Доброго времени суток! Пишу диплом, возникла проблема. Нужно законнектиться к мобильному телефону (по блютузу, к примеру) и отобразить файловою систему этого телефона в окне ПК(все папки с файлами - так же, как и при обычном подключении через USB-кабель) для передачи информации. Подключиться мне нужно программно, прог таких никогда на писал. Посоветуйте что-то, пожалуйста. Спасибо! ...
C++ Нужно разработать программную систему разработать программную систему для туристической фирмы. Текст задания во вложениях.Работу нужно сдать 23 января. подробнее

Показать сообщение отдельно
_lunar_
1230 / 1156 / 80
Регистрация: 03.05.2011
Сообщений: 2,787
Записей в блоге: 3
Завершенные тесты: 1
29.01.2014, 19:41     Как создаются языки программирования?
Цитата Сообщение от malan2009 Посмотреть сообщение
спомощью чего и каких средств сделали, что вот эта команда будет делать эту функцию, а эта команда, вот эту функцию.
вкратце смотрю не получилось ну что же попробую объяснить более развернуто.
пойдём с самого низа - с процессора. Важной структурной единицей памяти и внутренних регистров процессора является триггер. Это устройство позволяет запоминать, хранить и считывать информацию (каждый триггер может хранить 1 бит информации). Триггер можно построить из двух логических элементов "ИЛИ" и двух элементов "НЕ". В обычном состоянии на вход триггера подаётся сигнал 0 и триггер хранит 0. Для записи 1 на вход соответственно подаётся сигнал 1. Если триггер запомнил 1, то с выхода триггера можно считать 1. Для сброса информации на вход подаётся сигнал 1, после чего триггер возвращается к исходному "нулевому" состоянию.
существует три основные логические операции "И" "ИЛИ" "НЕ". Поскольку любая логическая может быть представлена в виде комбинации трех основных логических операций, процессор, производящий обработку или хранение информации может собрать её из базовых логических элементов как из "кирпичиков". Логические элементы процессора оперируют с сигналами, представляющими собой электрические импульсы. Если импульс есть - логический смысл сигнала 1, нет импульса - 0. На входы логического элемента поступают сигналы-значения аргументов, на выходе появляется сигнал-значение функции. Преобразование сигнала логическим элементом задаётся таблицей состояния, которая фактически является таблицей истинности, соответствующей логической функции.
важно понимать, что процессор общается не словами, буквами и цифрами, он общается двоичной системой исчисления (0 и 1). Чтобы максимально упростить работу процессора всё многообразие математических операций сводится к сложению двоичных чисел. Поэтому не менее важной частью процессора являются сумматоры, которые как раз и обеспечивают такое сложение (не будем останавливаться на темах полусумматоры, полный одноразрядный сумматор, многоразрядный сумматор об этом можно почитать в интернете).

подведём итог: мы знаем, что процессор понимает только двоичную систему исчисления. А также то, что 0 и 1 могут представляться в различных комбинациях по средствам работы триггера. И то, что эти комбинации нулей и единиц можно суммировать.
так вот, чтобы создать язык программирования вам нужно написать программу (компилятор\транслятор\интерпретатор), которая могла бы переделать синтаксис вашего языка так (со "слов" в "нули" и "единицы"), чтобы процессору было понятно то, что вы от него хотите. Подобные программы работают на самом низком уровне с регистрами процессора (отсюда и разность архитектур процессора и разность структур исполняемого файла).
суть в том, чтобы создать последовательный поток 0 и 1 (условно), который мог бы быть безошибочно прочитан процессором. Поэтому вопрос в вашей цитате сводиться к логическим операциям.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru