Giter VIP home page Giter VIP logo

acs_hw_4's Introduction

Четвёртое Домашнее задание "Архитектура вычислительных систем"

Задача: Языки программирования, Вариант 148 (8, 11)

Автор: Туракулов Исломбек Улугбекович

Оценка 8 из 10

Условие задачи

Общие для всех альтернатив переменные

  • Популярность в процентах (TIOBI) — действительное
  • Год создания — целое

Общие для всех альтернатив функции

Частное от деления года создания на количество символов в названии (действительное число)

Базовые альтернативы

Процедурные

  • наличие, отсутствие абстрактных типов данных – булевская величина

Объектно-ориентированные

  • наследование: одинарное, множественное, интерфейса – перечислимый тип

Функциональные

  • типизация – перечислимый тип = строгая, динамическая
  • поддержка «ленивых» вычислений – булевский тип

Функционал

После размещения данных в контейнер необходимо осуществить их обработку в соответствии с вариантом задания. Обработанные данные после этого заносятся в отдельныӗ файл результатов.

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


Тестирование

Исходные данные для тестирования содержатся в каталоге outs.

Файл с результатами прогонов тестов outs/reports.txt

$ sh compilefile.sh

Процедурная (C++)

Время работы программы на разных размерах входных данных:

Количество языков программирования Время работы, seconds Потребляемая память, KB
7 < 0.002 ~2750
100 < 0.01 ~2892
1000 0.01 ~3674
5000 0.15 ~4622
10000 0.96 ~4877

Объектно-ориентированная (C++)

Время работы программы на разных размерах входных данных:

Количество языков программирования Время работы, seconds Потребляемая память, KB
7 < 0.001 ~2600
100 < 0.01 ~2800
1000 0.01 ~3500
5000 0.14 ~4150
10000 0.90 ~4625

Динамическая типизация (Python)

Время работы программы на разных размерах входных данных:

Количество языков программирования Время работы, seconds Потребляемая память, KB
10 Source: 0.002 Sort: 0.002 ~4420
100 Source: 0.005 Sort: 0.023 ~5650
1000 Source: 0.038 Sort: 1.911 ~8652
5000 Source: 0.069 Sort: 2.233 ~10841
10000 Source: 0.423 Sort: 169.316 ~20532

Разница процедурной, объектно-ориентированной, динамической типизацией с программой на ассемблере


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

Во-первых, программа, написанная на языке высокого уровня, все равно транслируется в ассемблерную программу, причем весьма неоптимальным образом. То есть программа на Ассемблере практически всегда будет работать быстрее и занимать значительно меньше памяти.

Во-вторых, доступ ко многим аппаратным ресурсам можно получить только с помощью Ассемблера. Прошу подметить, ассемблерную программу можно писать в любом редакторе!

Метрики, определяющие характеристики программы:

Метрика Значение
Общий размер исходных текстов программы 17.211 KB
Размер исполняемого файла релизной сборки (GCC, Linux)* 32.12 KB

* Версии подробнее:

islam@islam-VirtualBox:~$ g++ --version
g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

islam@islam-VirtualBox:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal

islam@islam-VirtualBox:~$ uname -a
Linux islam-VirtualBox 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Tue Oct 26 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

acs_hw_4's People

Contributors

islombekturakulov avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.