.: Menu :.
Home
Реферати
Книги
Конспекти уроків
Виховні заходи
Зразки документів
Реферати партнерів
Завантаження
Завантажити
Електронні книги


????????...

 
��������...
Базисні типи і стандартні функції мови SML 


Базисні типи і стандартні функції мови SML
Лабораторна робота 1

Тема: Базисні типи і стандартні функції мови SML
Мета: ознайомитися з ядром мови SML, стандартним набором функцій, принципами побудови функцій і типів.

Вступ
Метою лабораторних робіт є набуття практичних навичок прикладного програмування на основі теоретичної частини курсу, а також знайомство з платформою Microsoft .NET.
Для виконання робіт в рамках розділу необхідне наступне програмне забезпечення:
32-розрядна операційна система Microsoft Windows 98, ME, 2000, XP, 2003.
Інтегроване середовище розробки Microsoft Visual Studio .NET
Компілятор SML.NET.
Код SML.NET може також відкомпілюватися на наступному програмному забезпеченні:
32-розрядна операційна система Microsoft Windows 98, ME або 2000, XP, 2003.
Платформа розробки Microsoft.NET Framework SDK або Microsoft.NET Framework Redistr.
Компілятор SML.NET.
Компілятор для мови програмування SML в середовищі Microsoft .NET доступний за адресою: http://www.cl.cam.ac.uk/Research/TSG/SMLNET
Умови і правила використання середовища розробки застосувань Microsoft Visual Studio .NET доступні за адресою: http://www.msdn.microsoft.com/vstudio/
Опис основних функцій мови програмування SML доступно за адресою: http://www.standardml.org/

Теоретичні відомості
Перші реалізації мови SML були інтерактивними. При запуску компілятора користувач вводив вирази в режимі командного рядка. Введені SML-вирази компілювалися і прямували на виконання, і результат відображався на екрані комп.ютера. Введення чергового виразу було можливе після закінчення обробки попереднього. Сучасна реалізація мови SML в середовищі обчислень Microsoft .NET дозволяє проводити компіляцію програм у виконувані файли або динамічні бібліотеки (у форматі DLL), а також створювати тиражовані компоненти для повторного використання в проектах на інших мовах. Мова SML повною мірою підтримує імпорт класів .NET.

Функції і типи
Функції в мові SML задаються по аналогії з їх математичним уявленням. При цьому тип може бути заданий як в явному вигляді, наприклад:
fun square(x:int)= x*x
так і пропущений (неявно заданий на етапі компіляції). Похідні типи в мові SML будуються з множини базисних типів. Так, функція з аргументом int і результатом string, матиме тип int -> string.
Можливо також завдання функції з використанням fn-виразу
val square = fn x => x * x.
Базисні типи і функції мови SML.
bool — логічний тип даних. У модулі bool над ним визначені такі операції, як заперечення (val not: bool -> bool), перетворення до рядкового типу (val toString: bool -> string), а також перетворення з рядкового типу (val fromString: string -> bool).
word — тип, що являє собою ціле число без знаку, і, як правило, що зберігається у формі машинного представлення слова. У відповідному модулі визначені перетворення для даного типу (наприклад, val toInt : word -> int), а також арифметичні (наприклад, val + : word * word -> word) і логічні (наприклад, val > : word * word -> bool) операції.
char — символьний тип даних. У модулі char також визначені функції перетворення (val toString : char -> String.string), логічні операції (val isDigit : char -> bool) і інші функції.
real — число з плаваючою крапкою. У модулі real визначені операції перетворення (val toString : real -> string), а також порівняння (val >= : real * real -> bool), перетворення форматування і точності (val maxFinite: real).
int — цілочисельний тип.
string — тип символьного рядка.
Загальний опис типів даних і функцій SML.NET зберігається у формі файлів з описом інтерфейсу в директорії srcasis цільового каталога компілятора.

Типи, об.єкти і методи .NET
Проілюструємо фрагмент відображення типів мови SML.NET у систему типів Common Type System.
Відповідність типів .NET і типів SML
Тип .NET
Тип SML.NET

System.Boolean
bool

System.Byte
Word8.word

System.Char
char

System.Double
real

System.Single
Real32.real

System.Int32
int

System.Int64
Int64.int

System.Int16
Int16.int

System.Sbyte
Int8.int

System.String
string

System.UInt16
Word16.word

System.UInt32
word

System.UInt64
Word64.word

System.Exception
exn

System.Object
object


Окрім явного вказування типів, в SML.NET передбачені засоби для посилання на будь-який тип ієрархії типів .NET. При цьому необхідно указувати повне ім.я об.єкту, наприклад:
type XMLParser =
string -> System.Xml.XmlDocument
Наступна програма ілюструє використання типів SML і Common Type System .NET:

structure builtintypes_demo =
struct

fun main () =
(
print ( |cosh(1.2)=
| ^ Real.toString(
System.Math.Cosh(1.2)) ^ | |).
print ( |System.Int32.MinValue =
| ^ Int.toString(
System.Int32.MinValue) ^ | |).
print (valOf
(System.Char.GetUnicodeCategory(
#|Z|).#ToString()))
)

end

Завдання
Сформулюйте формальну постановку завдання, запишіть правила виводу і реалізуйте програму на SML відповідно до варіанту виконання.

Варіанти завдань
Реалізувати функцію обчислення суми двох цілих чисел.
Реалізувати функцію обчислення різниці двох цілих чисел.
Реалізувати функцію обчислення добутку двох цілих чисел.
Реалізувати функцію обчислення частку ділення двох цілих чисел.
Реалізувати функцію обчислення суми двох дійсних чисел.
Реалізувати функцію обчислення різниці двох дійсних чисел.
Реалізувати функцію обчислення добутку двох дійсних чисел.
Реалізувати функцію обчислення частку ділення двох дійсних чисел.
Реалізувати функцію піднесення цілого числа до квадрату.
Реалізувати функцію піднесення до квадрату суми двох цілих чисел.
Реалізувати функцію піднесення до квадрату різниці двох цілих чисел.
Реалізувати функцію піднесення до квадрату добутку двох цілих чисел.
Реалізувати функцію піднесення до квадрату частки ділення двох цілих чисел.
Реалізувати функцію піднесення до квадрату суми двох дійсних чисел.
Реалізувати функцію піднесення до квадрату різниці двох дійсних чисел.
Реалізувати функцію піднесення до квадрату добутку двох дійсних чисел.
Реалізувати функцію піднесення до квадрату частки ділення двох дійсних чисел.
Реалізувати функцію піднесення в куб цілого числа.
Реалізувати функцію піднесення в куб суми двох цілих чисел.
Реалізувати функцію піднесення в куб різниці двох цілих чисел.
Реалізувати функцію піднесення в куб добутку двох цілих чисел.
Реалізувати функцію піднесення в куб частки ділення двох цілих чисел.
Реалізувати функцію піднесення в куб суми двох дійсних чисел.
Реалізувати функцію піднесення в куб різниці двох дійсних чисел.
Реалізувати функцію піднесення в куб добутку двох дійсних чисел.


Search:
????????...

драматургія 70 90 років

самовільне видобування корисних копалин місцевого значення

цитати до образу гобсека

призначення рядок статусу

неопозитивізм

ВКЛАД Михайла Грушевського

безталанна критика

Відомі вчені Європи XIX - XX століття

чи варто виправдовувати чіпку твір

паління та його негативний вплив на здоров’я людини



?????????? ????????? ????
   
Created by Yura Pagor, 2007-2010