تورینگ (زبان برنامه‌نویسی)

**تورینگ** یک زبان برنامه‌نویسی شبیه پاسکال است که در ۱۹۸۲ توسط Ric Holt و James Cordy در دانشگاه تورنتوی کانادا ایجاد شد. زبان تورینگ تأثیر گرفته از زبان‌های Euclid، پاسکال و SP/K می‌باشد که از ویژگی‌های این زبان، نحو واضح و روشن، همچنین دارا بودن معانی وابسته به ماشین به شکل مختصر و مفید است.

نام این زبان از نام آلن تورینگ دانشمند علوم کامپیوتر اهل بریتانیا گرفته شده‌است. از زبان تورینگ به‌طور عمده به عنوان یک زبان آموزشی در سطح دبیرستان و دانشگاه استفاده می‌شود. دو نسخه دیگر Object-Oriented turing و Turing plus برای سیستم‌های مختلف برنامه‌نویسی به وجود آمدند. در سپتامبر ۲۰۰۱، Object-Oriented Turing به Turing تغییر نام داد و زبان اصلی Turing نیز Classic Turing نامیده شد. تورینگ پس از مدتی دیگر توسط «شرکت نرم‌افزاری هولت» حمایت نشد. در حال حاضر مایکروسافت ویندوز تنها پلت فرمی است که از این زبان حمایت می‌کند. تورینگ در ابتدا به‌طور گسترده در دبیرستان‌های Ontario به عنوان مقدمه‌ای برای برنامه‌نویسی استفاده می‌شد.

در ۲۸ نوامبر ۲۰۰۷، زبان تورینگ که قبلاً یک زبان برنامه‌نویسی تجاری بود، نرم‌افزاری رایگان شدکه از وبسایت توسعه دهندگان آن قابل بارگیری است و بدون پرداخت هزینه‌ای می‌توان از آن برای مصارف شخصی، تجاری و آموزشی استفاده کرد.

سازندگان تورینگ، یعنی شرکت نرم‌افزاری هولت، از آن روز دست از کار کشیده‌اند. معلوم نیست آیا تورینگ هنوز در حال توسعه‌است یا نه، اما هیچ انتشار جدیدی از ۲۵ نوامبر ۲۰۰۷ نداشته‌است.

## نحو
تورینگ طوری طراحی شده‌است که دارای نحو بسیار ساده، خوانا و همچنین قابل درک به صورت مستقیم و شهودی باشد. اینجا برنامه Hello World! در زبان تورینگ به‌طور کامل آمده‌است:

 **put** "Hello World!"

زبان تورینگ از سمی کالن و آکولاد اجتناب می‌کند و در عوض از نشانه‌های صریح end برای بیشتر ساختارهای زبان استفاده می‌کند و در اینجا یک برنامهٔ کامل با استفاده از تعریف سنتی تابع بازگشتی برای محاسبه فاکتوریل آورده شده‌است:

  % Accepts a number and calculates its factorial

  **function** factorial (n: **int**): **real**
  **if** n = 0 **then**
  **result** 1
  **else**
  **result** n * factorial (n - 1)
  **end if**
  **end** factorial

  **var** n: **int**
  **loop**
  **put** "Please input an integer: " ..
  **get** n
  **exit when** n>= 0
  **put** "Input must be a non-negative integer."
  **end loop**

  **put** "The factorial of ", n, " is ", factorial (n)

## پیاده سازی باز
در حال حاضر، دو پیاده‌سازی open source جایگزین وجود دارد، یکی Tplus که یک کامپایلر محلی برای زبان برنامه‌نویسی سیستم‌های همزمان Turing plus است و دیگری OpenT که یک سیستم جدید است که در حال حاضر در حال توسعه است.

## Tplus
Tplus یک پیاده‌سازی open source از زبان تورینگ اصلی است که در دانشگاه تورنتو توسعه یافت و در دانشگاه Queen's در اواخر ۱۹۹۰ به لینوکس، سلاریس و مکینتاش منتقل شد. Tplus , Turing را که یک زبان برنامه‌نویسی سیستم‌های همزمان بر اساس زبان تورینگ اصلی است، پیاده‌سازی می‌کند.
برخی، اما نه همهٔ ویژگی‌های Turing plus در زبان فعلی Object-Oriented turing وجود دارند. Turing plus، تورینگ اصلی را با پردازش‌ها و نمایشگرها، همچنین توسط ساختارهای زبان که برای برنامه‌نویسی سیستم احتیاج داریم مانند ورودی – خروجی دودویی، کامپایل جداگانه، متغیرها در آدرس‌های مطلق، تبدیل نوع و دیگر ویژگی‌ها، توسعه می‌دهد.

## OpenT
OpenTیک زبان open source، کامپایلر و محیط برنامه‌نویسی (IDE)است که توسط اعضای dteam از علوم کامپیوتر کانادا طراحی شده‌است. این زبان شباهت‌های بسیاری با Turing دارد و بطور کامل با آن سازگار است. OpenT در اصل ایجاد شد تا از خاصیت محفوظ بودن (وابسته به مالک بودن) Turing جلوگیری کند اگر چه پیاده‌سازی کامل تورینگ اصلی Holt Software، در حال حاضر به open-source تبدیل شده‌است.

## منابع

* 
* 
* Forum for Turing Help, Tutorials، & Source Code

رده:آلن تورینگ
رده:بنیان‌گذاری‌های ۱۹۸۲ (میلادی) در انتاریو
رده:بنیان‌گذاری‌های ۱۹۸۲ (میلادی) در کانادا
رده:خانواده زبان برنامه‌نویسی الگول
رده:دانشگاه تورنتو
رده:زبان‌های برنامه‌نویسی
رده:زبان‌های برنامه‌نویسی آکادمیک
رده:زبان‌های برنامه‌نویسی آموزشی
رده:زبان‌های برنامه‌نویسی ایستا
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۸۲ (میلادی)
رده:زبان‌های برنامه‌نویسی ساخت‌یافته
رده:مقاله‌های با کد مثال