Создание калькулятора - Программирование, компьютеры и кибернетика лабораторная работа

Создание калькулятора - Программирование, компьютеры и кибернетика лабораторная работа



































Краткая характеристика предметно-ориентированных языков, различия между "внутренними" и "внешними" DSL. Особенности работы транслятора (компилятора). Листинг программы для разработки простейшего калькулятора с использованием программной среды Java.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Цель работы: Создать простейший калькулятор, используя Java.
Предметно-ориентированные языки представляют собой обширную тему для обсуждения, ее невозможно уместить в одном вводном абзаце. Более подробную информацию о DSL можно найти в еще неопубликованной книге Мартина Фаулера (Martin Fowler). Обратите особое внимание на различия между "внутренними" и "внешними" DSL. Благодаря своему гибкому синтаксису и функциональной природе Scala может с успехом применяться для создания DSL обоих типов.
Другими словами, в конечном итоге язык должен позволять клиентам создавать и вычислять выражения аналогично тому, как показано в листинге 1.
// использование интерпретатора DSL в Java
double result = com.tedneward.calcdsl.Calculator.evaluate(s);
System.out.println("We got " + result); // Should be 57
Те из вас, кто обладает базовым представлением о теории компиляторов, знают, что работа транслятора (компилятора или интерпретатора) состоит как минимум из двух основных шагов:
· парсер обрабатывает текст программы и трансформирует его в абстрактное синтаксическое дерево (AST);
· генератор кода (в случае компилятора) обрабатывает AST и генерирует машинный код, либо блок вычислений (в случае интерпретатора) исполняет команды, содержащиеся в AST.
Разделение этих шагов работы транслятора на отдельные фазы позволяет выполнять оптимизацию промежуточного представления кода в AST. Например, в случае калькулятора можно проанализировать выражения и в ряде случаев отбросить целые его части, в частности операнды, умножаемые на ноль (поскольку результат гарантированно будет равен нулю).
Таким образом, нашей первой задачей будет определение AST для языка выражений. К счастью, в Scala есть case-классы . Они не предоставляют мощных средств инкапсуляции, но в них удобно хранить данные, что в совокупности с другими возможностями делает их подходящим инструментом для создания AST.
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable()
CalculatorFrame frame = new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
class CalculatorFrame extends JFrame {
CalculatorPanel panel = new CalculatorPanel();
class CalculatorPanel extends JPanel {
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();
panel.setLayout(new GridLayout(4, 4));
private void addButton(String label, ActionListener listener) {
JButton button = new JButton(label);
button.addActionListener(listener);
private class InsertAction implements ActionListener
public void actionPerformed(ActionEvent event)
String input = event.getActionCommand();
display.setText(display.getText() + input);
private class CommandAction implements ActionListener
public void actionPerformed(ActionEvent event)
String command = event.getActionCommand();
calculate(Double.parseDouble(display.getText()));
if(lastCommand.equals("+")) result += x;
else if(lastCommand.equals("-")) result -= x;
else if(lastCommand.equals("*")) result *= x;
else if(lastCommand.equals("/")) result /= x;
else if(lastCommand.equals("=")) result = x;
Проделав данную лабораторную работу, я научился создавать простейший калькулятор, используя программную среду Java.
Общая характеристика основ дисциплины "Теория чисел". Интерфейс, листинг и оценка положительных и отрицательных качеств программы-калькулятора CalcKurs, а также описание ее основных процедур – DelOstatok, Factor, NodNok, SuperGorner, Express и AntiExp. курсовая работа [1,9 M], добавлен 28.05.2010
Пример построения программы с использованием арифметических операторов. Основные инструменты создания калькулятора. Процедура ввода чисел. Измененная процедура обработки нажатия кнопки "+". Процедура открытия формы "Справка", итоговый результат. презентация [1,5 M], добавлен 02.03.2012
Задачи трансляторов, характеристика их видов. Этапы и функции основных фаз процесса компиляции. Описание используемых директив и команд ассемблера, алгоритмов, таблиц. Листинг программы. Алгоритм работы программной реализации разрабатываемого компилятора. курсовая работа [1,3 M], добавлен 24.06.2013
Характеристика интерфейса в Java, возможность его расширения с использованием механизма наследования. Организация обратного вызова в Java. Сущность внутреннего класса. Обращение из внутреннего класса к элементам внешнего класса и листинг программы. методичка [90,8 K], добавлен 30.06.2009
Характеристика библиотеки java.awt. Обработка событий управляющими компонентами и менеджерами размещения. Основные виды компонентов. Написание программы–калькулятора, реализующую графический интерфейс. Спецификация класса Calc и иерархия классов AWT. методичка [643,8 K], добавлен 30.06.2009
Принцип работы транслятора. Исследование формата данных объектного файла шестнадцатиразрядной системы DOS для последующего преобразования его в файл программы. Используемые директивы и команды ассемблера. Алгоритмы программы и таблицы компилятора. контрольная работа [35,9 K], добавлен 07.07.2012
Разработка приложения "Калькулятор с переходом в строковый калькулятор" с применением объектно-ориентированного программирования. Концепция и понятия объектно-ориентированного программирования. Язык программирования Java. Листинг программы "Калькулятор". курсовая работа [966,9 K], добавлен 11.02.2016
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Создание калькулятора лабораторная работа. Программирование, компьютеры и кибернетика.
Курсовая Работа На Тему Договор Пожизненного Содержания С Иждивением
Вгту Оформление Реферата
Контрольная Работа По Математике Базовый Уровень
Средство Индивидуальной Защиты Реферат По Обж
Я И Другие Итоговое Сочинение Вывод
Я Планирую Стать Врачом Эссе
Контрольная работа: Статистические данные о социально-экономических явлениях и процессах
Реферат по теме Из истории формирования языка русской науки
Реферат: Литература - Гистология (Печень)
Реферат: Развитие художественно-творческих способностей детей дошкольного возраста
Реферат: Old Africa Vs New Africa Essay Research
Реферат: К вопросу о включении рабов в римское войско при Августе
Кросс Культурный Менеджмент Задачи И Проблемы Реферат
Эссе На Тему Химическая Промышленность Великобритания Ли
Реферат: Hockey Essay Research Paper Is Hockey Being
Воспитательные Технологии Реферат
Реферат Середньовічне Місто Та Його Економічна Роль
Курсовая работа по теме Анализ финансовых результатов деятельности организации
Дипломная работа по теме Проектировка участка механической обработки
Реферат: Эстетика сюрреализма. Скачать бесплатно и без регистрации
Технологія продажу меблевих товарів - Маркетинг, реклама и торговля реферат
Методи діагностичного дослідження розвитку творчих здібностей старших дошкільників - Педагогика статья
Бизнес-план по открытию торгового предприятия "Рукодельный сундучок" - Маркетинг, реклама и торговля курсовая работа


Report Page