Jump to content

UNITY (язык программирования)

UNITY — это язык программирования, созданный К. Мани Чанди и Джаядевом Мисрой для их книги «Проектирование параллельных программ: основа» . Это теоретический язык, который фокусируется на том, что , а не где , когда и как . Язык не содержит методов управления потоком данных , и операторы программы выполняются недетерминированным образом до тех пор, пока операторы не перестанут вызывать изменения во время выполнения. Это позволяет программам работать бесконечно, например, автопилоту или системам безопасности электростанции, а также программам, которые обычно завершаются (которые здесь сходятся к фиксированной точке ).

Описание

[ редактировать ]

Все операторы являются присваиваниями и разделены #. Оператор может состоять из нескольких присваиваний вида a,b,c := x,y,z, или a := x || b := y || c := z. Вы также можете иметь количественный список утверждений , <# x,y : expression :: statement>, где x и y выбираются случайным образом среди значений, удовлетворяющих выражению . аналогично Количественное задание . В <|| x,y : expression :: statement >, оператор выполняется одновременно для всех пар x и y которые удовлетворяют выражению .

Пузырьковая сортировка

[ редактировать ]

Пузырьковая сортировка массива путем сравнения соседних чисел и замены их местами, если они расположены в неправильном порядке. С использованием ожидаемое время, процессоры и ожидаемая работа. Причина, по которой у тебя есть только ожидаемое время, это k всегда выбирается случайным образом из . Это можно исправить, перевернув k вручную.

Program bubblesort
declare
    n: integer,
    A: array [0..n-1] of integer
initially
    n = 20 #
    <|| i : 0 <= i and i < n :: A[i] = rand() % 100 >
assign
    <# k : 0 <= k < 2 ::
        <|| i : i % 2 = k and 0 <= i < n - 1 ::
            A[i], A[i+1] := A[i+1], A[i] 
                if A[i] > A[i+1] > >
end

Ранговая сортировка

[ редактировать ]

Вы можете отсортировать время с ранговой сортировкой. Вам нужно процессоры и делают работа.

Program ranksort
declare
    n: integer,
    A,R: array [0..n-1] of integer
initially
    n = 15 #
    <|| i : 0 <= i < n :: 
        A[i], R[i] = rand() % 100, i >
assign
    <|| i : 0 <= i < n ::
        R[i] := <+ j : 0 <= j < n and (A[j] < A[i] or (A[j] = A[i] and j < i)) :: 1 > >
    #
    <|| i : 0 <= i < n ::
        A[R[i]] := A[i] >
end

Алгоритм Флойда – Уоршалла

[ редактировать ]

Используя алгоритм Флойда – Уоршалла для всех пар алгоритма кратчайшего пути , мы итеративно включаем промежуточные узлы и получаем время, используя процессоры и работа.

Program shortestpath
declare
    n,k: integer,
    D: array [0..n-1, 0..n-1] of integer
initially
    n = 10 #
    k = 0 #
    <|| i,j : 0 <= i < n and 0 <= j < n :: 
        D[i,j] = rand() % 100 >
assign
    <|| i,j : 0 <= i < n and 0 <= j < n ::
        D[i,j] := min(D[i,j], D[i,k] + D[k,j]) > ||
    k := k + 1 if k < n - 1
end

Мы можем сделать это еще быстрее. Следующие программы вычислят кратчайший путь для всех пар в время, используя процессоры и работа.

Program shortestpath2
declare
    n: integer,
    D: array [0..n-1, 0..n-1] of integer
initially
    n = 10 #
    <|| i,j : 0 <= i < n and 0 <= j < n ::
        D[i,j] = rand() % 10 >
assign
    <|| i,j : 0 <= i < n and 0 <= j < n ::
        D[i,j] := min(D[i,j], <min k : 0 <= k < n :: D[i,k] + D[k,j] >) >
end

После раунда , D[i,j] содержит длину кратчайшего пути из к длины . В следующем раунде длиной , и так далее.

  • К. Мани Чанди и Джаядев Мисра (1988) Разработка параллельных программ: фундамент .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 283e1c736d6c7a48ccd0f3462ee2d28c__1703808540
URL1:https://arc.ask3.ru/arc/aa/28/8c/283e1c736d6c7a48ccd0f3462ee2d28c.html
Заголовок, (Title) документа по адресу, URL1:
UNITY (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)