Мова програмування схеми - вступ

На відміну від мов складання, мова програмування схеми є мовою високого рівня. Більш переважно його можна назвати мовою, що дуже виражає. Синтаксиси читати набагато простіше, але не так просто, як Python або Ruby. Мова програмування схеми діє на структурах даних, таких як вектори, рядки, кортежі, символи та числові частини. Мова програмування схеми має багаті набори даних, що робить її надзвичайно універсальною. Програми, написані за допомогою програми програмування, є високо портативними через різні платформи.

Отже, що таке мова програмування схеми?

Ми знаємо, що це мова не для початківців. Тоді як це, як правило, співпадає з подібними до Java, C або C ++? Найбільш основний інтерпретатор, який використовується для програмування в схемі, - це доктор Ракет, який раніше був відомий як схема PLT. Він також має хороший вбудований IDLE. Насправді це дуже проста мова, і її можна навіть трактувати як мову початківця.

Єдине, що популярність та галасливість Python, Ruby та Perl затьмарили простоту мови програмування схем. На відміну від інших мов, він не має занадто багато синтаксисів.

Він має специфічний набір синтаксисів, відомий як синтаксичні форми. Якщо ви вивчали Python раніше, ви зрозумієте, що форма інтерпретації прикладів мови програмування схеми вимагає експериментування для розробки нових методів. Хоча програмування схем часом є складним, воно вимагає повного потенціалу та ґрунтовних знань, вивчення та практики.

Проста схема програми виглядає так:

(define sqre
(lambda (n)

(* n n)))

Це програма, де 'sqre' - це визначена функція для отримання квадрата числа. Потім ви можете використати наступне в перекладачі, щоб отримати квадрат.

>>>(sqre 4) => 16

>>>(sqre -9) => 81

Примітка. Коли ви пишете програми програм, не потрібно використовувати відступи. Інтерпретатор Racket досить розумний для автоматичного відступу програми. Частини, написані зеленим кольором, - це шматочки коду, а чорний - вихідний текст вище. Крім того, ви можете бачити, що кожен фрагмент коду потрібно вкласти в круглі дужки, інакше він просто поверне помилку. Я використовую відступи лише для того, щоб зробити яснішим код.

Аналогічний приклад отримання зворотного зв'язку:

(define recpcl

(lambda (n)

(if (= n 0)

"Invalid denominator "

(/ 1 n))))

Тут recpcl є коротким для зворотного, і він обчислює 1 / n, де n не дорівнює нулю для будь-якого числа. Якщо n дорівнює нулю, воно поверне помилку як "Недійсний знаменник". І ви можете спробувати це, ввівши:

(recpcl 3) => 1/3
(recpcl 9/4) => 4/9
(recpcl 0) =>"Invalid Denominator"
(recpcl (recpcl 2/3)) => 2/3

Впровадження мови програмування схеми

Мова програмування схеми зазвичай використовується для запису програм для редагування тексту, аналізу та оптимізації компіляторів на основі програм, написання драйверів для графічних карт, розробки операційних систем та багато іншого.

На комерційній основі корисніше розробляти додатки на основі чисельності, писати програми для обчислення великих завдань, що базуються на фінансах, таких як аналіз фінансових ресурсів та його програм. Останнім часом його також використовують для розвитку VR (віртуальної реальності).

Програми, написані на прикладах мов програмування, легко доступні для порту на різних платформах в різних архітектурах. Це тому, що машинні залежності тут повністю приховані від програміста. Ця портативність може здійснюватися за допомогою набору бібліотек стандартних схем мов програмування за допомогою базового механізму впровадження нових бібліотек та програм інших рівнів.

Гамбіт також відомий як Gambit-C (використовує C для резервної обробки) - це вільне програмне забезпечення, яке складається з компілятора та інтерпретатора. Він компілює мову схеми на C. Зазвичай ви можете записати всі ті програми на мові схеми, які ви можете написати на C або Java. Просто для того, щоб ви знали, мова програмування схеми - це діалект з родини Лісп. Макроси в мові програмування схеми надзвичайно потужні.

Мова програмування схеми підтримує майже всі протоколи програмування, такі як POP, ActiveX, SMTP, IMAP, HTTP, XML та багато іншого. Ці протоколи використовуються щодня для створення реальних програм, які використовуються по всьому світу.

Рекомендовані курси

  • Сертифікаційне навчання в JIRA
  • Навчання з сертифікації Java EE / J2EE
  • Навчання сертифікації монтажу та кабельних пристроїв
  • Курс із загальних мереж

Продуктивність та ефективність

Якщо ви досвідчений програміст, то, можливо, ви знаєте, що мова програмування схем була повільною. Але це не є справжній випадок. Усі останні компілятори надзвичайно ефективні та швидкі. Ці програми працюють нарівні з програмами, написаними мовами низького рівня (не рівно швидкістю збирання, але, проте, майже близькою до неї).

Причина, чому мова програмування схем є швидкою, оскільки є реалізація коду схеми, яка надзвичайно швидка. Більшість з вас може не знати, але я бачив, що код схеми Chez, безсумнівно, дуже швидкий. Причина в тому, що це швидкий компілятор, який може компілювати до 30 000 рядків коду схеми в секунду в машинний код. Цей вид перетворення надзвичайно швидкий, що дозволяє конкурувати з машинним кодом, якщо не перемогти його.

Але тут є улов. Оптимізувати код схеми непросто. Власне кажучи, набагато складніше написати код компілятора в схемі, ніж записати його в C. Тут є багато речей. Такі речі, як функції високого порядку, потік даних, перевірка типів, і все це просто ускладнює мову програмування схеми. Простий компілятор схем не може виконати всі перелічені вище оптимізації мови програмування схеми та оптимізацію С разом із цим.

Відверто кажучи, якщо ви запитаєте людей на мові програмування схем, ви не знайдете жодної високопродуктивної реалізації продуктивності. Причиною цього є те, що люди, як правило, пишуть невеликі реалізації, і вони не схильні використовувати його для досягнення продуктивності.

Люди, які користуються мовою програмування схем, насправді більшість із них навіть не дбають про продуктивність. Це не тому, що їм це не потрібно. Це тому, що базові реалізації коду схеми для них вже досить швидкі.

Нижче наведено кілька швидких компіляторів часу для схеми:

  1. Сталін
  2. Курка
  3. Гамбіт-С (або просто Гамбіт)
  4. Біглу

Програмування С проти схеми

Про всяк випадок, якщо ви новачок і новачок у навчанні програмуванню, і ви плануєте почати зі схеми; Я б краще запропонувати вам для початку HTDP (Як проектувати програми). HDTP заснований на мові програмування схеми, але він більше зосереджується на рекурсії деталей. Основна його мета - познайомити вас із основою для вирішення проблем, які загалом застосовні в реальному світі.

Однак спочатку це може бути нудним, оскільки більшість матеріалів виглядає повторно. Але такий старанний підхід може змусити вас легко вирішувати нудні проблеми без використання рекурсії та інших інструментів. Я не бачу жодної конкретної причини, щоб не вивчати обидві мови, тобто мову C та схему одночасно. Якби це був пітон, а не C, могло б бути деякі проблеми.

Але спільне вивчення мови C та схем здавалося б стомлюючим, але врешті-решт це стане гарним опорою для програмування. Причиною тому є те, що С і Схема - це дві різні сторони однієї монети. Коли я кажу по-різному, якщо ви спробуєте вивчити обидва, навряд чи є ймовірність, що ви заплутаєтесь, оскільки в обох є чітко виражені синтаксиси та формати.

Але все ж, якщо ви думаєте вивчити лише одну мову, то C - це, мабуть, правильний вибір. Якщо ви знаєте С, можливо, мова схеми може бути трохи простішою для розуміння (це припущення, що ви чистий початківець.)

Хоча, очевидно, можна паралельно вивчити підручники C і Scheme, я б рекомендував вчитися за власним методом, але час, коли ви потрапляєте на нерівну дорогу, (коли я кажу про нерівну дорогу, я маю на увазі важко зрозуміти будь-яку мову .) Вам варто подумати, як зосередити увагу. Вивчити HTDP - прекрасна ідея, якщо ви тут абсолютно нова.

Якщо ви вже знайомі з C, то, ймовірно, ви також повинні вивчити підручник із схеми. Причиною цього є FFI (Foreign Function Interfaces). Він надається всіма реалізаціями мови програмування Scheme. Це дає можливість швидко написати прототип у підручнику із схеми та оптимізувати лише декілька частин коду в цій програмі.

Коли це відбувається, ви можете перекодувати іншу неоптимізовану частину в C та викликати ці функції C мовою схеми за допомогою іноземної риби. Таким чином, якщо ви засвоїли C, то це допоможе вам надзвичайно оптимізувати код схеми.

Але якщо ви перебуваєте на проміжному етапі навчання, ви можете подумати, що вам потрібно навчитися C. Суть у тому, що спершу ви повинні знати, як писати програми, а потім розпочати навчання програмуванню.

Інші думки

Хоча мова програмування схеми є досить хорошою мовою, і її можна використовувати і як початківця, проте, з іншого боку, в реальному світі люди в світі програмування, як правило, віддають перевагу мові з імперативним стилем. Більшість із них зазвичай використовують C або C ++. А програмісти на C ++, здавалося б, відштовхують вас від використання математичних методів для проектування програми з тієї чи іншої причини.

Як би ви не були з рекурсією, це, однак, не призведе до великої ролі в написанні імперативних програм. Щодо мене, я б завжди віддав перевагу Python як мої основні мови високого рівня. З підручником із схеми немає проблем, але коли ви пишете програми, вам потрібен спокій. І для мене дзвінок переходить до C та Python, інакше.

Перше джерело зображення: pixabay.com

Рекомендовані статті

Це було основним посібником щодо мови програмування схем, тут ми обговорили різні мови програмування, що може бути простішим порівняно зі схемою. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Знайте кращу мовну програмування для C ++ (основи)
  2. 12 кращих кроків для встановлення мови програмування R (Короткий посібник)
  3. 8 Краща мова програмування мобільних додатків, яку ви повинні знати
  4. Знайте кращу мову програмування - Java проти Golang
  5. Кар'єра в програмуванні R
  6. Важливі моменти C проти C ++
  7. Продуктивність від C до C ++: Хочете дізнатися найкращі відмінності