دسته بندی های ارشیو: نرم افزار

آموزش تصویری دستورات مهم JavaScript

نگاه کوتاه

JavaSript

از ویکی‌پدیا، دانشنامهٔ آزاد

جاوااسکریپت (به انگلیسی: JavaScript) زبان برنامه‌نویسی اسکریپت مبتنی بر اشیاء است که توسط NetScape تولید شده‌است. این زبان، یک زبان شی‌گرا[۱] است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شده‌است.
علیرغم اشتباه عمومی، زبان جاوااسکریت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شده‌است. از همینرو دستورهای متداول مانند if, for,try..catch ,”while” و… در این زبان هم یافت می‌گردند.
این زبان می‌تواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته می‌شوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی می‌تواند به عنوان نمونه‌ای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم مناسب می‌باشد.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی می‌باشد و به کمک این زبان می‌توان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان استفاده می‌شود.
JavaScript به صورت «جاواسکریپت» خوانده می‌شود، ولی در فارسی به صورت «جاوااسکریپت» ترجمه می‌شود و اگر به صورت «جاوا اسکریپت» ترجمه شود اشتباه است چون دو کلمه جدا از هم نیست و اگر به صورت دو کلمه جدا نوشته شود خطلاهای نگارشی ایجاد می‌شود، به طور مثال ممکن است کلمه جاوا در انتهای خط و کلمه اسکریپت در ابتدای خط بعدی نوشته شود.

تاریخچه

جاوااسکریپت را در ابتدا شخصی به نام برندان ایچ در شرکت نت‌اسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوااسکریپت تغییر یافت.[۲] این تغییر نام تقریباً با افزوده شدن پشتیبانی از جاوا در مرورگر وب Netscape Navigator همزمانی دارد. اولین نسخهٔ جاوااسکریپت در نسخه ۲٫۰B3 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری منجر به سردرگمی‌های زیادی شده و این ابهام را ایجاد می‌کند که جاوااسکریپت با جاوا مرتبط است در حالی که این طور نیست. عدهٔ زیادی این کار را یک ترفند تجاری برای به دست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامه‌نویسی تحت وب بود می‌دانند.[۳][۴]

به دلیل موفقیت عمدهٔ جاوااسکریپت در نقش زبان نویسه‌ای سمت کاربر (client side scripting language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را جی اسکریپت نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در اوت ۱۹۹۶ داده شد. تفاوت‌های این دو زبان به حدی جزیی است که اغلب جی اسکریپت و جاوااسکریپت به جای هم به کار می‌روند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت جی اسکریپت با استاندارد ECMA مطرح می‌کند.

نت‌اسکیپ جاوااسکریپت را به سازمان Ecma International برای استاندارد سازی ارسال کرده‌است و نتیجه نسخهٔ استاندارد شده‌ای به نام ECMA Script است.[۵]

جاوااسکریپت به یکی از زبان‌های برنامه‌نویسی پر طرفدار در وب تبدیل شده‌است. هر چند ابتدا بسیاری از برنامه نویسان حرفه‌ای زبان را کم ارزش تلقی می‌کردند چون مخاطبین آن نویسندگان صفحات وب و آماتورهای این چنینی بودند.[۶] ظهور ای‌جکس بار دیگر جاوااسکریپت را در معرض توجه قرار داد و برنامه نویسان حرفه‌ای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانه‌های جامعی در این زمینه، بهبود شیوه‌های رایج برنامه‌نویسی در جاوااسکریپت و افزایش کاربرد جاوااسکریپت خارج از وب است.[نیازمند منبع]

امکانات زبانی

امکانات زیر (در صورت قید نشدن) همگی مطابق استاندارد ECMA Script می‌باشند.

فریم ورک های مبتنی برجاوا اسکریپت

فریم ورک های زیادی برای این زبان درست شده است مانند جی کوئری و آنگولار جی اس

زبان امری و ساخت یافته

جاوااسکریپت از تمامی نحو ساختاری زبان C پشتیبانی می‌کند. مانند گزاره (if و switch و حلقه‌های while و…) یک مورد استثناء تعیین حوزهٔ متغیرهاست: تعریف حوزه در حد block در جاوااسکریپت وجود ندارد. هر چند جاوااسکریپت ۱٫۷ با کلمهٔ کلیدی let این نوع حوزه دهی را امکان‌پذیر می‌سازد. مانند c در جاوااسکریپت بین عبارت و گزاره تفاوت وجود دارد.

پویایی

؛ تایپ دهی پویا: مانند اکثر زبان‌های نویسه‌ای تایپ به مقدارها منسوب می‌گردد و نه به متغیرها. برای مثال متغیر x ممکن است به یک عدد وابسته سازی شود، و بعداً به یک رشته. جاوااسکریپت برای تعیین تایپ شی راه‌های مختلفی از جمله تایپ دهی اردکی (duck typing) را دارد.[۷]

؛ تایپ دهی ضعیف: زبان جاوااسکریپت از نظر تایپ دهی ضعیف به شمار می‌آید و در آن نتیجهٔ عملیاتی مانند ۵ + “۳۷”، عبارت “۵۳۷” خواهد بود. (عدد را با رشته جمع کرده‌است)

؛ اشیاء به دید آرایه‌های انتسابی: جاوااسکیرپت تقریباً تماماً بر اساس اشیاء است. اشیاء، آرایه‌های انتسابی به همراه یک «ساختار شماتیک» هستند. نام ویژگی اشیاء، کلیدهای آرایه انتسابی هستند و درواقع obj.x = ۱۰ با obj[“x”] = ۱۰ هم ارز هستند و شیوه نگارش با نقطه صرفاً یک سهولت نحوی است. ویژگی‌ها و مقدارهایشان در زمان اجرا قابلیت تغییر اضافه و حذف دارند. همچنین می‌توان روی ویژگیهای یک شی با ساختار for … in پیمایش کرد.

؛ ارزیابی در زمان اجرا: جاوااسکریپت یک تابع eval دارد که قادر است گزاره‌های تولید شده در یک رشته در زمان اجرا را، اجرا کند.

تابعی بودن

؛ تابعی بودن: توابع موجوداتی «درجه اول» محسوب می‌شوند، یعنی خود یک شی هستند؛ بنابراین می‌توانند ویژگی داشته باشند، در آرگومان‌های تابع‌ها داده شوند و مانند هر شی دیگری با آن‌ها رفتار شود

؛ توابع داخلی و بستارها: توابع داخلی (توابع تعریف شده داخل یک تابع دیگر) هر بار که تابع بیرونی فرا خوانده شود، ایجاد می‌شوند و متغیرهای توابع بیرونی تا زمانی که تابع داخلی وجود داشته باشد، وجود خواهند داشت، حتی پس از اتمام آن فراخوانی از تابع بیرونی. (مثال: اگر تابع داخلی به عنوان مقدار برگشتی تابع باشد، هنوز به متغیرهای تابع بیرونی دسترسی دارد) – این مکانیزم بستار گرفتن در جاوااسکریپت است.

ساختار شماتیک» محوری

؛ ساختار شماتیک: جاوااسکریپت به جای رده‌ها برای تعریف ویژگی‌های اشیاء، که شامل متدها و وراثت است از «ساختار شماتیک» استفاده می‌کند (پیش‌نمونه). امکان شبیه‌سازی بسیاری از امکانات رده-محور با ساختارهای شماتیک جاوااسکریپت امکان‌پذیر است.

توابع در نقش سازندهٔ اشیاء

برای توابع علاوه بر نقش عادی، به عنوان سازنده ی اشیاء هم عمل می‌کنند. آوردن یک new قبل فراخوانی تابع، آن را با کلمهٔ کلیدی this وابسته سازی شده به شی جدید اجرا می‌کند. ویژگی prototype از تابع مورد نظر، ساختار شماتیک شی جدید را مشخص می‌کند.

؛ توابع در نقش متد: بر خلاف بیشتر زبان‌های شی گرا تفاوتی میان تعریف تابع و متد وجود ندارد. بلکه تفاوت در زمان فراخوانی تابع است، زمانی که یک تابع به عنوان متد یک شی فراخوانده می‌شود کلمهٔ کلیدی this محلی آن تابع به شی مورد نظر وابسته سازی می‌شود.

امکانات دیگر

امکانات دیگر

جاوااسکریپت برای تأمین اشیاء و متدها که با آن‌ها تعامل کند به یک محیط اجرایی (مانند مرورگر وب) نیاز دارد تا بتواند به این ترتیب با دنیای خارج ارتباط برقرار کند. همچنین برای دسترسی به سایر نویسه‌ها (include) هم به این محیط نیازمند است (مانند تگ <script>در HTML). (البته این یک ویژگی زبانی نیست اما در عمل اغلب این طور پیاده‌سازی شده‌است)

؛ تعداد متغیر پارامتر (variadic): تعداد نامعینی پارامتر را می‌توان به یک تابع ارسال نمود. تابع می‌تواند هم از طریق پارامترهای رسمی و هم از طریق شی محلی arguments به آن‌ها دسترسی داشته باشد.

Literalهای آرایه و شی

مانند بسیاری از زبان‌های نویسه‌ای آرایه‌ها و اشیاء (که در زبان‌های دیگر همان آرایه‌های انتسابی هستند) را می‌توان با یک نحو موجز ایجاد و توصیف نمود. در واقع این شیوهٔ نگارش پایهٔ قالب داده‌ای جی‌سون هم هست.

عبارات منظم

جاوااسکریپت به شیوه‌ای مشابه زبان پرل از عبارات منظم پشتیبانی می‌کند که نحوی قدرتمند و موجز را به شکلی فراتر از توابع پیش ساخته برای کار با رشته‌ها، فراهم می‌کند.

نظام تایپ دهی

انواع زیر جزو انواع داده‌های قابل دسترس در زبان جاوااسکریپت است. در استاندارد ECMA انواع دیگری هم تعریف شده که صرفاً داخلی است و برای پیاده‌سازی است.[۸]

تعریف نشده: این تایپ فقط یک مقدار با نام undefined دارد و متعلق به تمام متغییرهای مقدار دهی نشده‌است

نوع تهی: نوع تهی هم فقط یک مقدار دارد با نام null

نوع دودویی: نمایندهٔ یک مقدار منطقی است و دو مقدار true و false را می‌پذیرد.

نوع رشته: در بر گیرندهٔ تمام رشته‌های متناهی از ۰ یا بیشتر عنصر ۱۶ بیتی بدون علامت است. این عناصر با اندیس‌های نامنفی قابل دسترسی هستند. طول رشته تعداد عناصر داخل آن و طول رشتهٔ تهی برابر ۰ است.

زمانی که رشته حاوی متن واقعی باشد هر عنصر به عنوان یک واحد UTF-16 در نظر گرفته می‌شود (مستقل از این که شیوهٔ واقعی نگه داری رشته چه باشد). تمام عملیات بر روی رشته‌ها آن‌ها را به عنوان اعداد صحیح بدون علامت در نظر می‌گیرند و تضمین کنندهٔ تولید رشته به حالت normalize شده نیست و تضمین‌های خاص زمانی هم ندارد. علت این تصمیم گیری سادگی در پیاده‌سازی ذکر شده‌است.

نوع عدد: نوع عدد در جاوااسکریپت مطابق با استادارد IEEE برای اعداد شناور دودویی است (با اندکی تفاوت).

نوع شی: شی در جاوااسکریپت یک مجموعه بدون ترتیب از ویژگی‌ها است. هر ویژگی می‌تواند داخلی، فقط-خواندنی، غیرقابل حذف، و غیرقابل پیمایش باشد (یا ترکیبی از این‌ها یا هیچ‌کدام)

تبدیلات خودکار

این زبان دارای تبدیلات خود کار بین این انواع داده‌ای است.

زمانی که بخواهد یک if را ارزیابی کند یا از عملگرهای منطقی ! و && و || استفاده شود، تبدیل به نوع دودویی را انجام می‌دهد. مقادیر ۰ و ۰- و NaN به false و سایر مقادیر عددی به true نگاشت می‌گردد. همچنین رشتهٔ تهی false و سایر رشته‌ها true در نظر گرفته می‌شود. انواع شی و تابع true و undefined و null هم false در نظر گرفته می‌شود.

زمانی که یکی از عملوندهای عملگر + رشته باشد، تبدیل به رشته صورت می‌گیرد، مانند ۵ + “۳۷” که می‌شود “۵۳۷”

عملگرهای دیگری عددی (جز جمع) منجر به تبدیل به عدد می‌گردد مانند ۳ – “۵۷” که مقدار عددی ۳۴- را به دست می‌دهد.[۹]

آموزش تصویری HTML

نگاه کوتاه

HTML

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از HTML)
اچ‌تی‌ام‌ال
HTML.svg
استانداردهای وب
HTML
RDF
CSS
DOM
XHTML
XML
SVG
W3C
DHTML

زبان نشانه‌گذاری ابرمتنی یا زنگام[۱] یا اچ‌تی‌ام‌ال، HTML یا HyperText Markup Language در کنار سی‌اس‌اس هستهٔ فناوری ساخت صفحه‌های وب هستند. اچ‌تی‌ام‌ال زبان توصیف ساختار صفحه‌های وب است.[۲] زبانی‌است برای نشانه‌گذاری ابرمتن که برای تدوین قالب و طراحی صفحه‌های وب به کار می‌برند. دستورعمل‌های این زبان، برچسب (Tag) نام دارند که محتوای یک صفحهٔ وب، با آن‌ها، نشانه‌گذاری شده و بدین‌ترتیب، نحوهٔ نمایش آن صفحه برای مرورگرهای وب، توصیف می‌شود.

این زبان در خلال دهه ۹۰ توسط دنیس ریچی ابداع شد.

تاکنون نسخهٔ ۵ آن عرضه است.[۳]

هر یک از برچسب‌های اچ‌تی‌ام‌ال، معنا و مفهوم خاصی دارند و تأثیر مشخصی بر محتوا می‌گذارند؛ مثلاً برچسب‌هایی برای تغییر شکل ظاهری متن، نظیر درشت و ضخیم کردن یک کلمه یا برقراری پیوند به صفحات دیگر در اچ‌تی‌ام‌ال تعریف شده‌اند.

یک سند اچ‌تی‌ام‌ال، یک پروندهٔ مبتنی بر متن (Text–based) است که معمولاً با پسوند .htm یا .html نام‌گذاری شده و محتویات آن از برچسب‌های اچ‌تی‌ام‌ال تشکیل می‌شود. مرورگرهای وب، که قادر به درک و تفسیر برچسب‌های اچ‌تی‌ام‌ال هستند، تک‌تک آن‌ها را از داخل سند اچ‌تی‌ام‌ال خوانده و سپس محتوای آن صفحه را نمایان‌سازی (Render) می‌کنند.

اچ‌تی‌ام‌ال زبان برنامه‌نویسی نیست، بلکه زبانی برای نشانه‌گذاری ابرمتن است و اساساً برای ساخت‌مند کردن اطلاعات و جدایش اجزای منطقی یک نوشتار — نظیر عناوین، تصاویر، فهرست‌ها، بندها و جداول — به کار می‌رود. از سوی دیگر، اچ‌تی‌ام‌ال را نباید به عنوان زبانی برای صفحه‌آرایی یا نقاشی صفحات وب به کار بُرد؛ این وظیفه اکنون بر دوش فناوری‌های دیگری همچون سی‌اس‌اس است.

گفتنی است اچ‌تی‌ام‌ال شکلی از زبان دیگری بنام اس‌جی‌ام‌ال است و World Wide Web Consortium آن را به عنوان استانداردی برای نشانه‌گذاری مستندات ابرمتنی برای عرضه در وب، تدوین کرده‌است.

در اچ‌تی‌ام‌ال سه نوع برچسب وجود دارد:

  1. تگ‌های یکه. مانند ‎<HR>‎ که خط رسم می‌کند.
  2. تگ‌هایی که شروع و پایان دارند. مثل: ‎<head></head>‎
  3. تگ‌هایی که دارای ویژگی می‌باشند. مثل:

‎<a href=”http://www.w3.org”>متن</a>‎

تاریخچه[ویرایش]

توسعه[ویرایش]

در سال ۱۹۸۰ فیزیکدانی به نام Tim Berners-Lee که با پروژهٔ CERN همکاری داشت ENQUIRE را طراحی و ارائه کرد که یک سیستم مهم برای محققان CERN بود تا اینکه از این داده‌ها به شکل مشترک استفاده کنند. در سال ۱۹۸۹، Berners- Lee یک یادداشت پیشنهاد یک سیستم ابر متن مبتنی بر اینترنت نوشت. Berners- Lee یک نوع خاص HTML را مشخص نمود و یک نسخهٔ جستجوگر و نرم‌افزار سرور را در انتهای۱۹۹۰ نوشت. در این سالیان این فیزیکدان و مهندس سیستم‌های داده‌های CERN بنام Robert Cailliau یک سرمایه‌گذاری مشترک را انجام دادند ولی این پروژه به شکل رسمی توسط CERN دنبال نشد. در یادداشت‌های شخصی او از سال ۱۹۹۰ اشاره شده است که برخی از مناطق مختلف ابر متن (hypertext) به کار گرفته شده است و در ابتدای آن از یک دائرهالمعارف استفاده گردید.

اولین بار شرح کامل HTML به این شکل بود که به آن در نسخه‌های قبلی “HTML Tags” گفته شد که برای اولین بار توسط Berners –Lee در سال ۱۹۹۱ روی اینترنت قرار گرفت؛ که آن توصیف ۱۸ عناصر شامل عناصر اولیه، طراحی نسبتاً ساده از HTML بود. به غیر از Hyperlink این موارد تحت تاثیر SGMLguid در فرمت مبتنی بر SGML قرار گرفت و در پروژهٔ CERN به کار. رفت یازده مولفه از آن در HTML 4 نوشته شده است.

زبان نشانه گذاری ابرمتنی به شکلی است که مرورگرهای وب برای تحلیل و نوشتن متون تصاویر و دیگر مواد روی صفحات قابل شنیدن و قابل دیدن وب به کار می‌رود. ویژگی‌های پیش فرض برای هر مورد در ساختار HTML در جستجوگر تعریف شده است و این ویژگی‌ها را می‌توان تغییر داد و یا اینکه توسط CSS بر اساس طراحی صفحه افزایش داد. بسیاری از اجزای متن در گزارش فنی ۱۹۸۸ ISO به شکل TR9537 ارائه شده است که نام این جزء روش‌های استفاده از SGML بود که در آن ویژگی‌های اولیه ساختار زبانی مانند آنچه که در مورد فرمان RUNOFF دیده می‌شود استفاده شد که در ابتدای دهه ۱۹۶۰ برای CTSS ارائه شده است. این فرمان‌های ساختاری از فرمان‌های مورد استفاده توسط typesetters استفاده می‌کند که به شکل دستی برای فرمت‌های مختلف در نظر گفته شده‌اند. اما اصل SGML برای ساختار کلی بر اساس اجزای مختلف است (محدوده‌های حاشیه نویسی تو در تو به همراه ویژگی‌هایی که دارد) تا اینکه از اثرات چاپ استفاده شود. همچنین جداسازی ساختارها و شکل ترکیبی نیز باید در نظر گرفته شود. HTML به شکل مداوم به این صورت با CSS به کار گرفته می‌شود.

Berners- Lee از HTML به عنوان یک ابزار برای SGML استفاده کرده است. به طور کلی آنرا به عنوان دستور نیروی ضربت مهندسسی اینترنت(IETF) تعریف کرده است که در سال ۱۹۹۳ نسخه‌های اولیه از آن را بر اسا HTML ارائه نمود.”زبان نشانه گذاری ابرمتنی HTML” پیش نویسی اینترنتی توسط Dan Cannolly ،Berners- Lee ارائه گردید و درون تعریف نوع سند SGML برای تعریف گرامر ارائه شد. این نسخه اولیه پس از شش ماه منقضی گردید ولی قابل توجه اینکه از جستجو گرNCSA Mosaic به شکل جستجو گر پیش فرض برای تصاویر بر خط استفاده شد که نشان دهندهٔ فلسفهٔ IETF در استانداردهای ساختارهای موفق است. به همین شکل Dave Raggett’s رقابت خود را با ارائه(Internet-Draft , HTML+(Hypertext Markup format از انتهای ۱۹۹۳ شروع کرد و پیشنهاد کرد که یک ساختار اجرایی مانند جداول و شکلهای پر شونده را می‌توان برای این منظور به کار گرفت.

پس از انکه HTML و +HTML به شکل پیش نویس در ابتدای ۱۹۹۴ منقضی گردید،IEFT یک گروه کاری HTML را ایجاد کرد که در سال ۱۹۹۵ نسخهٔ HTML 2.0 تکیمل گردید، HTML اولیه با این قصد ساخته شده که به شکل یک ساختار استاندارد در آینده از آن استفاده شود.

پس از آن پیشرفت‌هایی در IETF در نظر گرفته شد که مورد توجه رقیبان قرار گرفت. تا سال ۱۹۹۶ ویژگی‌های HTML حفظ شد و ورودی‌هایی از نرم‌افزارهای تجاری گرفته شد که این کار توسط (W3C) انجام شد. اما در سال ۲۰۰۰ HTML یک استاندارد بین‌المللی (ISO/IEC 15445:2000) گردید. HTML4.01 در انتهای ۱۹۹۹ انتشار یافت و پس از آن ساختار بعدی آن در سال ۲۰۰۱ به شکل کامل منتشر شد- در سال ۲۰۰۴ پیشرفت‌هایی در HTML5 در (WHATWG) در نظر گرفته شد و شکل قابل ان تشار آن به شکل W3C در سال ۲۰۰۸ ارائه گردید.

نسخه‌های HTML جدول زمانی[ویرایش]

۲۱ نوامبر ۱۹۹۵[ویرایش]

HTML 2.0 به شکل IETF RFC 1866 انتشار یافت.RFCs تکمیلی ظرفیت‌های زیر را داشت:

  • ۲۵ نوامبر RFC 1867:1995 (آبلود فایل مبتنی بر فایل)
  • می RFC 1942:1996 (جداول)
  • اگوست RFC 1980:1996(نقشه‌های تصویری سمت مشتریان)
  • ژانویه RFC 207O:1997 (بین‌المللی شده)

ژانویه ۱۹۹۷[ویرایش]

HTML3.2 به شکل توصیه نامهٔ W3C انتشار یافت. نسخه اول پیشرفت داده شد و استاندارد کردن آن به شکل انحصاری توسط W3C انجام شد به همین شکل IETF گروه کاری خود HTML را در سپستامبر ۱۹۹۶ کاملاً ارائه کرد. در ابتدا این فرمان را Wilbur نامید. HTML3.2 فرمول‌های ریاضی را به طور کامل به کار گرفت، که در آن همپوشانی‌هایی در اجزای مختلف پیشرفت کرده آن داشت و از مهم ترین ابزارهای تصویری Netscape استفاده شده بود. عناصر مبهم Netscape و عناصر متحرک Microsoft مورد استفاده قرار نگرفت که دلیل آن توافق دو طرفه میان دو شرکت بود. ساختار ریاضی مورد استفاده مشابه با HTML بود ولی استاندارد کردن آن تا ۱۴ ماه پس از MathML انجام نگرفت.

دسامبر۱۹۹۷[ویرایش]

html 4.0 توصیه W3C را ارائه کرد که در آن سه تفاوت عمده اعمال شده بود:

  • مشکل کلی که در آن اجزای بد پنهان شده بودند.
  • انتقالی که در آن اجزای بد اجازه داده شده بودند.
  • قاب که در آن قاب با اجزای مختلف مرتبط اجازه داده شده بودند.

درابتدا با کدنام “Cougar” نامگذاری شده بود و ۰٫HTML4 از انواع اجزای خاص جستجوگر و ساختارهای مختلف استفاده کرده بود ولی در همان زمان مرحله‌ای در نظر گرفته شد که از ویژگی‌های نشانه گذاری بصری Netscap را با مارک آنها به عنوان نفع شیوه نامه‌ها توصیه نمی‌شود. HTML 4 یک برنامه SGML مطابق با ISO 8879 است.

آوریل ۱۹۹۸[ویرایش]

HTML4.0 برخی تغییرات انداک را دوباره انجام داد بدون آنکه تعداد نسخه‌ها را افزایش دهد.

دسامبر ۱۹۹۹[ویرایش]

HTML4.01 به توصیهٔ W3C انتشار یافت. در آن سه تغییر کلی به شکل HTML4.0 در نظر گرفته شد و اخرین غلط نامه در ۱۲ می ۲۰۰۱ انتشار یافت.

می ۲۰۰۰[ویرایش]

۲۰۰۰:ISO/IEC ۱۵۴۴۵ به عنوان استاندارد بین‌المللی ISO/IEC انتشار یافت. در ISO این استاندارددر حوزه ISO/IEC JTC1/SC34 قرارگرفت. دراواسطISO/IEC15445:2000,HTML4.01 :۲۰۰۸ جدیدترین نسخه‌های HTML ارائه شد. پیشرفت‌های موازی صورت گرفته، باعث شد که XHTML مبتنی بر XML حاصل شود که توسط گروه کاری W3CHTML در طی اوایل و اواسط ۲۰۰۰ اشغال شده بود.

جدول زمانی نسخه‌های پیش نویس HTML[ویرایش]

اکتبر ۱۹۹۱[ویرایش]

برچسب‌های HTML فهرستی از نسخه‌های غیر رسمی CERN که در آن ۱۸ برچسب‌های HTML وجود دارد که برای اولین بار برای عموم مورد استفاده قرار گرفت.

ژوئن ۱۹۹۲[ویرایش]

پیش نویس غیر رسمی اول HTML DTD هفت بار مورد اصلاح قرار گرفت(۱۵ ژوئیه، ۶آگوست، ۱۸ آگوست، ۱۷ نوامبر، ۱۹نوامبر، ۲۰نوامبر و ۲۲نوامبر)

نوامبر ۱۹۹۲[ویرایش]

HTML DTD1.1 اولین نسخه دارای اعداد بر مبنای اصلاحات RCS که با ۱٫۱ شروع شد تا اینکه با ۱٫۰ شروع شود و این به عنوان نسخه غیر رسمی درآمد

ژوئن ۱۹۹۳[ویرایش]

زبان ساختاری Hypertext توسط گروه کاری IETF IIIR به عنوان نسخهٔ اینترنتی درآمد (که یک پیش نویس برای استاندارد در نظر گرفته شد) این جایگزین نسخه دوم شد که یکماه بعد از این اتفاق افتاد و پس از آن شش پیش نویس توسط IETF انتشار یافت و در نهایت منجر به ارائه HTML 2.0 در RFC1866 گردید.

نوامبر ۱۹۹۳[ویرایش]

HTML+ توسط IETF انتشار یافت که یک پیش نویس اینترنتی بود و رقیب پیش نویس زبان ساختاری Hyper textگردید. در می ۱۹۹۴ این نسخه منقضی گردید.

آوریل ۱۹۹۵[ویرایش]

(تا مارس ۱۹۹۵ نسخه‌های نهایی آن ارائه شد): HTML3.0 را می‌توان یک استاندارد برای IETF در نظر گرفت ولی پیش نویس آن ۵ ماه بعد بدون هیچگونه اقدامی منقضی گردید. این شامل ظرفیت‌هایی بود که در پیش نویس +Raggett’s HTML دیده شده و برای پشتیبانی جداول و متون در اطراف تصاویر به کار گرفته شد و می‌توانست که فرمول‌های ریاضی پیچیده را نمایش دهد. W3C برای جستجوگر Arena پیشرفت کرد و به عنوان یک بستر آزمایشی برای HTML3 و صفحات آبشاری شکل استفاده شد ولی HTML3.0 به دلایل مختلف موفق نبود. این پیش نویس بسیار بزرگ بود و ۱۵۰ صفحه در آن دیده شد و تعدادی از اجزای جالب به آن اضافه شد و منابع IETF در خارج آن قرار گرفت. ارائه کنندگان جستجوگر شامل Netscape ,Microsoft در همین زمان زیر مجموعه‌های مختلفی از HTML3 را انتخاب کردند تا اینکه پیشرفت‌هایی در آن ایجاد شود. این پیشرفت‌ها برای کنترل جنبه‌های مختلف در نظر گرفته شد که رنگ متن، بافت پیش تصویر، اندازهٔ فونت و شکل فونت در خارج از محدود ی زمانی قرار می‌گرفت و این می‌توانست نشان دهد که چگونه این بخش سازماندهی شده است. Dave Raggett برای چندین سال از W3C استفاده کرده بود که یک مثال مطلوب برای این منظور بود. مطمئناً مایکروسافت براساس صفحات وب ساخته شده بود و از ویژگی‌های HTML انتخاب شده بود.

ژانویه ۲۰۰۸[ویرایش]

HTML5 به عنوان پیش نویس کاری توسط W3C انتشار یافت ولی syntax یک HTML5 , SGML را ارائه کرد که تلاش کرده بود که از SGML استفاده کند و HTML5 تلاش‌های مختلفی را برای SGML انجام داد و آنرا سری “html” تعریف نمود که به سری سازی XML- مبتنی بر XHTML5 جایگزین منجر شد.

می ۲۰۱۱[ویرایش]

در ۱۴ فوریه ۲۰۱۱، W3C ویژگی گروه کاری HTML را پیشرفت داد و یک ساختار مشخص برای HTML5 ارائه کرد. در می ۲۰۱۱ گروه کاری HTML5 پیشرفته را ارائه کرد که آخرین مورد بود و به دنبال آن بود که W3C خارجی را ارائه کند تا اینکه این ویژگی را به خوبی تعریف نماید. W3C آزمون جامعی را توسعه داد که در آن ویژگی‌های کامل به آن تا ۲۰۱۴ اضافه شد و اکنون این تاریخ هدفی برای توصیه‌ها شده بود.

نسخه‌های XHTML[ویرایش]

نوشتار اصلی: اکس‌اچ‌تی‌ام‌ال

XHTML یک زبان جداگانه است که به شکل فرمول بندی دوباره HTML 4.01 خود را نشان می‌دهد و از XML1.0 استفاده نموده است. اما به عنوان یک استاندارد جداگانه نمی‌توان از آن نام برد.

XHTML 1.0 در ۲۶ ژانویه ۲۰۰۰ انتشار یافت که به عنوان توصیهٔ W3C از آن نام بده شد و پس از آن دوباره اصلاح شد و انتشار دوبارهٔ آن در اول آگوست ۲۰۰۲ بود که در آن از سه نسخهٔ یکسان به عنوان HTML 4.0 و ۴٫۰۱ استفاده شد و فرمول بندی دوبارهٔ آن در XML بامحدودیت‌های خاص در نظر گرفته شد.
XHTML 1.1 در ۳۱ می ۲۰۰۱ انتشار یافت که توصیهٔ W3C محسوب شد. مبنای آن XHTML 1.0 بود ولی تغییرات اندکی در آن اعمال شده بود و فرمول بندی آن از ساختارهای تعدیل شده XHTML استفاده کرده بود که در ۱۰ آوریل ۲۰۰۱ انتشار یافته بود و توصیه W3C محسوب می‌گردید.
XHTML 2.0 یک نسخه پیش نویس کاری بود ولی در ۲۰۰۹ انتشار یافت که برای کارکرد مطلوب HTML5, XHTML5 بود. XHTML2.0 ناسازگاری‌هایی با XHTML1.X داشت و در نتیجه به شکل زبان جدید XHTML در امد تا اینکه به روزرسانی آن تا XHTML 1.X صورت گیرد
XHTML Syntaxرا می‌توان به عنوان XHTML5.1 دانست که بر اساس آن HTML5 در پیش نویس HTML5 تعریف شده بود.

نمونه تمرین ++C

نگاه کوتاه

یک زبان برنامه‌نویسی رایانه‌ای همه‌منظوره، شیءگرا، سطح بالا و چندرگه (که از برنامه‌نویسی رویه‌ای، تجرید داده‌ها و برنامه‌نویسی شیءگرا پشتیبانی می‌کند)، عمومی و با قابلیت‌های سطح بالا و سطح پایین می‌باشد. این زبان دارای قابلیت‌های انواع داده ایستا، نوشتار آزاد، چندمدلی، معمولاً زبان ترجمه شده با پشتیبانی از برنامه‌نویسی ساخت‌یافته، برنامه‌نویسی شیءگرا، برنامه‌نویسی جنریک است. از آنجا که در سی++ اشیاء را می‌توان ابتدا به ساکن از کلاس‌هایی ایجاد کرد که به هیچگونه سلسله مراتب رده‌ها و وراثت مقید نیستند، لذا سی++ از برنامه‌سازی شیء بنیاد (object-based programming) نیز پشتیبانی می‌کند.[۱] ++C به همراه جد خود C از پرطرفدارترین زبان‌های برنامه‌نویسی تجاری هستند.

++C یک زبان سطح میانی در نظر گرفته می‌شود؛ این زبان دارای قابلیت زبان‌های سطح بالا و پایین به‌صورت هم‌زمان است.

++C توسط بی‌یارنه استراس‌تروپ ریاضیدان دانمارکی در سال ۱۹۷۹ در آزمایشگاه‌های بل (Bell Labs)، برای بهبود زبان سی و بر مبنای آن ساخته شد و آن را «C با کلاس» (C With Classes) نام‌گذاری نمود. در سال ۱۹۸۳ به ++C تغییر نام داد. توسعه با اضافه نمودن کلاس‌ها و ویژگی‌های دیگری مانند توابع مجازی، سربارگزاری عملگرها، وراثت چندگانه، قالب توابع، و پردازش استثناء انجام شد. این زبان برنامه‌نویسی در سال ۱۹۹۸ تحت نام ISO/IEC ۱۴۸۸۲:۱۹۹۸ استاندارد شد. نسخهٔ فعلی استاندارد این زبان ISO/IEC ۱۴۸۸۲:۲۰۱۴ است.
ستراس‌تروپ کار بر روی زبان «C با کلاس» را در سال ۱۹۷۹ آغاز کرد. ایدهٔ ساخت این زبان جدید در زمان کار بر روی تز دکترای خود به ذهن استراس‌تروپ خطور نمود. او متوجه شد که سیمولا دارای ویژگی‌هایی مناسب برای ساخت برنامه‌های بسیار بزرگ است اما برای استفادهٔ عملی بسیار کند است اما بی‌سی‌پی‌ال با وجود سرعت بسیار زیاد برای ساخت برنامه‌های بزرگ بسیار سطح پایین است. زمانی که استراس‌تروپ کار خود را در آزمایشگاه‌های بل (Bell Labs) آغاز نمود با مشکل تحلیل هسته یونیکس با توجه به محاسبات توزیع شده روبرو شده بود. با یادآوری تجربیات خود در دوران دکترا، او زبان C را با استفاده از ویژگی‌های سیمولا گسترش داد. C به این دلیل انتخاب شد که یک زبان عمومی، سریع، قابل حمل، و در سطح گسترده‌ای در حال استفاده بود. علاوه بر C و سیمولا زبان‌های دیگری مانند ALGOL ۶۸، ADA، CLU، ML نیز بر ساختار این زبان جدید اثر گذاشت. در ابتدا ویژگی‌های کلاس، کلاس‌های مشتق شده، کنترل نوع قوی، توابع درون‌خطی و آرگومان‌های پیش‌فرض از طریق Cfront به C اضافه شد. اولین نسخهٔ تجاری در سال ۱۹۸۵ ارائه شد.

در سال ۱۹۸۳ نام زبان از «C با کلاس» به ++C تغییر یافت. ویژگی‌های دیگر شامل توابع مجازی، سربارگزاری عملگر و نام تابع، ارجاعات، ثوابت، کنترل حافظه توسط کاربر به‌صورت آزاد، کنترل نوع بهتر، و توضیحات یک‌خطی به صورت BCPL با استفاده از «//» نیز به آن اضافه شد. در سال ۱۹۸۵ اولین نسخه زبان برنامه‌نویسی ++C انتشار یافت و مرجع مهمی برای این زبان فراهم شد در حالی که هیچ استاندارد رسمی‌ای وجود نداشت. در سال ۱۹۸۹ ویرایش ۲٫۰ از زبان ++C ارائه شد. ویژگی‌های جدیدی مانند ارث‌بری چندگانه، کلاس‌های انتزاعی، اعضای ایستای توایع، اعضای ثابت تابع، و اعضای حفاظت شده به آن اضافه شد. در سال ۱۹۹۰ «راهنمای مرجع ++C» منتشر شد. این کار بنیان استانداردهای بعدی شد. آخرین ویژگی‌های اضافه شده شامل موارد زیر بودند: قالب توابع، استثناها، فضاهای نام، تبدیلات جدید، و یک نوع داده منطقی.

در حین تکامل ++C کتابخانهٔ استاندارد نیز به‌وجود آمد. اولین نسخهٔ کتاب استاندارد شامل کتابخانهٔ جریانات I/O بود که جایگزین printf و scanf شد. در ادامه مهم‌ترین ویژگی اضافه شده Standard Template Library بوده‌است.
در سال ۱۹۹۸ برای اولین بار پس از سال‌ها کار کمیته مشترک ANSI–ISO این زبان تحت عنوان ISO/IEC 14882:1998 و نام غیر رسمی C++98 استاندارد سازی شد. بعدها در سال ۲۰۰۳ نسخه جدیدی از استاندارد یعنی ISO/IEC 14882:2003 انتشار یافت و برخی از مشکلات و باگ‌های C++98 در آن رفع شد.

در سال ۲۰۰۵ یک گزارش فنی به اسم «گزارش فنی کتابخانهٔ ۱» (که معمولاً بصورت اختصار TR۱ خوانده می‌شود) منتشر شد که مواردی جدید را برای اضافه کردن به کتابخانه استاندارد در برداشت با این که این گزارش قسمتی از استاندارد نبود ولی بعدها در نسخه بعدی استاندارد یعنی C++11 اضافه شد.

نسخه بعدی با نام غیر رسمی C++11 و استاندارد ISO/IEC 14882:2011 در تاریخ ۱۲ اوت ۲۰۱۱ مورد تأیید سازمان بین‌المللی استانداردسازی قرار گرفت و جایگزین C++03 شد .

در سال ۲۰۱۴ آخرین نسخه از این زبان تا حال حاضر در در تاریخ ۱۸ آگوست ۲۰۱۴ با نام غیر رسمی C++14 و استاندارد ISO/IEC 14882:2014 منتشر شد. هدف اصلی C++14 همانند C++03 رفع مشکلات و همچنین اضافه کردن ویژگی‌ها و بهبود جزیی C++11 بوده است.

انتشار نسخه بعدی استاندارد این زبان با نام غیر رسمی C++17 برای سال ۲۰۱۷ برنامه ریزی شده است.

در حالی که ++C به هیچ مؤسسه‌ای وابسته نیست این مستندات به‌صورت آزادانه در دسترس نیستند. گرچه نسخه‌های نهایی نشده(draft) این اسناد در دسترس همگان قرار می‌گیرد.
ین نام منسوب به ریک ماسکیتی (اواسط ۱۹۸۳) است و برای اولین بار در دسامبر سال ۱۹۸۳ به کار برده شد. در طول مدت تحقیق این زبان بنام «C جدید» و بعدها «C با کلاس» خوانده شد. در علوم کامپیوتر هنوز هم ++C به عنوان ابرساختار C شناخته می‌شود. آخرین نام از عملگر ++ در زبان C (که برای افزایش مقدار متغیر به اندازهٔ یک واحد بکار می‌رود) و یک عرف معمول برای نشان دادن افزایش قابلیت‌ها توسط + ناشی گشته‌است. با توجه به نقل قولی از استراس‌تروپ: «این نام ویژگی‌ها تکاملی زبان در C را نشان می‌دهد.» +C نام زبانی غیرمرتبط به این زبان است.

استراس‌تروپ مبدأ این نام را در فصل اول کتاب خود «زبان برنامه‌نویسی ++C» اشاره می‌نماید که معنی دیگر ++C را می‌توان در ضمائم کتاب جرج ارول بنام ۱۹۸۴ یافت. در سه قسمت از زبان تخیلی Newspeak «کلمات C» برای اشاره به لغات فنی و حرفه‌ای بکار می‌رود. «دو علامت +» برای ایجاد صفات عالی از صفات Newspeak به کار می‌رفت بنابراین ++C به معنای زبانی با بیشترین شباهت به C است.

وقتی که به صورت خصوصی از ریک ماسکیتی در مورد این اسم سوال شد او در جواب گفت که این اسم بصورت خودمانی در بین آنها به کار می‌رفته‌است و تصور نمی‌کردند که این نام بصورت نام رسمی این زبان درآید.
در سال ۱۹۹۸ استاندارد ++C شامل دو بخش هسته زبان و کتابخانه استاندارد ++C است. این کتابخانه شامل بیشتر بخش‌های STL و کتابخانه استاندارد C است. بیشتر کتابخانه‌های ++C در استاندارد وجود ندارند و یا استفاده از تعریف قابلیت پیوند کتابخانه‌ها را می‌توان در زبان‌هایی مانند فرترن، C، پاسکال، بیسیک نوشته شوند. البته با توجه به ویژگی‌های کامپایلر مشخص خواهد شد که کدام زبان را می‌توان استفاده نمود.

کتابخانه استاندارد ++C شامل کتابخانه استاندارد C با یک سری تغییرات برای بهبود عملکرد است. بخش بزرگ بعدی این کتابخانه STL است. STL شامل ابزار بسیار قدرتمندی مانند نگه‌دارنده‌ها (مانند vector و list)، تکرارکننده‌ها (اشاره‌گرهای عمومی شده) برای شبیه‌سازی دسترسی مانند آرایه الگوریتم‌هایی برای جستجو و مرتب‌سازی در آنها وجود دارند. نقشه‌ها (نقشه‌های چندگانه) (آرایه شرکت‌پذیر) و مجموعه‌ها (مجموعه‌های چندگانه) واسط‌های عمومی فراهم می‌سازند. در نتیجه با استفاده از قالب تابع، الگوریتم‌های جنریک با هر نگه‌دارنده و دارای تکرارکننده عمل نماید. همانند C ویژگی‌های کتابخانه را می‌توان با استفاده از شبه دستور include# شامل یک سرآیند استاندارد اضافه نمود. c دارای ۶۹ کتابخانه استاندارد است که ۱۹ تا از آنها نامناسب تشخیص داده شده‌اند.

استفاده از کتابخانه استاندارد – مانند std::vector یا std::string به جای آرایه‌های C- موجب ایجاد برنامه‌های مطمئن‌تر شده‌است.

STL در آغاز محصولی جداگانه از HP و سپس SGL پیش از ادغام در کتابخانه استاندارد ++C بوده‌است. استاندارد عبارت STL را بکار نمی‌برد بلکه آن را بخشی از کتابخانه می‌داند اما مردم هنوز هم آن را برای جداسازی بخش‌های مختلف کتابخانه با این نام بکار می‌برند. (جریان‌های ورودی/خروجی، جهانی‌سازی، تشخیص، زیرمجموعه کتابخانه C)

بیشتر کامپایلرها کتابخانه استاندارد و STL را پیاده‌سازی می‌نماید. پیاده‌سازی‌های مستقلی نیز همانند STLport نیر وجود دارند. پروژه‌های دیگر نیز پیاده‌سازی‌های خود را از STL با توجه به اهداف خود بوجود می‌آورند.
در مقایسه با C زبان ++C ویژگی‌های جدیدی را معرفی نموده‌است مانند تعریف متغیر به عنوان عبارت، تغییر نوع‌های همانند تابع، new/حذف، نوع داده bool، توابع درون‌خطی، آرگومان پیشفرض، گرانبارسازی عملگر و تابع، فضای نام و عملگر تعیین حوزه ::، کلاس‌ها (شامل تمام ویژگی‌های مربوط به کلاس‌ها همانند وراثت، اعضای تابع، توابع مجازی، کلاس‌های انتزاعی، و سازنده‌ها)، قالب‌ها، پردازش استثناء، کنترل نوع زمان اجرا، عملگرهای سربار شده ورودی (<<) و خروجی (>>).

برخلاف باور عموم ++C نوع داده ثابت را معرفی ننموده‌است. کلمه const کمی پیش از استفاده از این کلمه در ++C توسط زبان C بصورت رسمی بکار گرفته شد.

در بعضی حالات ++C تعداد کنترل نوع بیشتری نسبت به زبان C انجام می‌دهد.

توضیحات با استفاده از // قبل از زبان C در زبان BCPL معرفی شده بود که مجدداً در زبان ++C به کار گرفته شد.

بعضی ویژگی‌های ++C بعداً توسط C به کار گرفته شد مانند نحوه تعریف for، توضیحات به شکل ++C (با استفاده از //)، و کلمه inline با وجود اینکه تعریف این کلمه در C با تعریف آن در زبان ++C هماهنگی ندارد. همچنین در C ویژگی‌هایی معرفی شده‌است که در ++C وجود ندارند مانند ماکروهای قابل تغییر و استفاده بهتر از آرایه‌ها به عنوان آرگومان. بعضی کامپایلرها این ویژگی‌ها را پیاده نموده‌اند اما در بقیه این ویژگی‌ها موجب ناهماهنگی می‌گردد.

تمرین الگوریتم و فلوچارت

نگاه کوتاه

الگوریتم

از ویکی‌پدیا، دانشنامهٔ آزاد
الگوریتم (نسبت: الگوریتمی، خوارزمیک) یا خوارزمی مجموعه‌ای متناهی از دستورالعمل‌ها است، که به ترتیب خاصی اجرا می‌شوند و مسئله‌ای را حل می‌کنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای حل مسئله است. شیوه محاسبه معدل در مدرسه، یکی از نمونه‌های الگوریتم است.
واژه الگوریتم از نام ریاضیدان و ستاره‌شناس و جغرافی‌دان نامی ایرانی، ابوجعفر محمد بن موسی خوارزمی (الخوارزمی)، گرفته شده است، که در خوارزم زاده شد و در دانشگاه «بیت الحکمه» بغداد به اوج شهرت رسید. خوارزم یکی از شهرهای «ایران بزرگ» بود، که امروزه در ازبکستان واقع شده است و خیوه نام دارد. رساله‌ای که خوارزمی در قرن ۹ میلادی به عربی نگاشته بود، در قرن ۱۲ به لاتین با نام “Algoritmi de numero Indorum” ترجمه شد؛ یعنی “[کتابی بدست] «الگوریتمی» در مورد اعداد هندی”، که «الگوریتمی» نام الخوارزمی بود که مترجم در تبدیل به لاتین نام وی را جلوی نام اصلی کتاب (در مورد اعداد هندی) آورده بود. در قرن ۱۳ میلادی واژه الگوریسموس(algorismus) به معنای «سیستم شمارش عربی (دهدهی)» (یعنی اعداد ۱ تا ۹ به علاوه صفر، و نیز مفهوم اعشار) بود؛ که هنوز هم یکی از معانی واژه الگوریسم(algorism) است. معنای دیگر الگوریسم «حساب کردن با کمک اعداد عربی» است؛ یعنی فن انجام أعمال حسابی پایه، مانند جمع و ضرب، با قرار دادن اعداد در زیر هم و إعمال قواعدی خاص، که جایگزین به کارگیری اعداد رومی و استفاده از چرتکه شد. حتی روش انجام دستی تقسیم و جذر گرفتن (رادیکال) هم الگوریسم نامیده می‌شود. در قرن ۱۹ این کلمه در فرانسوی به algorithme تغییر شکل پیدا کرد، البته معنایش ثابت ماند. طولی نکشید که این کلمه به شکل algorithm وارد زبان انگلیسی شد؛ ولی فقط در اواخر قرن ۱۹ میلادی بود که معنای عام‌تر امروزی‌اش را یافت، و به «هر مجموعه قواعدی برای انجام یک رویه محاسباتی یا روال رایانه‌ای به کار رود» الگوریتم گفته شد.

تبدیل نام الخوارزمی به الگوریسم و سپس الگوریتم احتمالاً تحت تأثیر واژه یونانی arithmos (به معنای عدد) و arithmetic (به معنای محاسباتی) بوده است. برخی منابع هم کلمه لگاریتم را هم در تبدیل الگوریسم و الگوریتم بی تأثیر ندانسته‌اند.

فلوچارت

رَوَندنما یا فلوچارت (به انگلیسی: Flowchart) نموداری است برای نمایش داده‌ها، اطلاعات و روند کار یک الگوریتم بر روی آنها، به‌وسیله نمادهای خاص و خطوط جهت‌دار بین آنها.
فلوچارت در واقع نقشه‌ای است که برنامه‌نویسان رایانه قبل از نوشتن برنامه به زبان برنامه‌نویسی اصلی آن را ترسیم می‌کنند. با مروری بر فلوچارت روند اجرای عملیات، مراحل و جزئیات برنامه و ورودی و خروجی هر مرحله از برنامه مشخص می‌شود. استفاده از فلوچارت جهت حل هر مسئله‌ای مفید است و بدون در نظر گرفتن زبان برنامه‌نویسی، نوشتن برنامه را سهولت می‌بخشد. علاوه بر این فلوچارت جزئی باارزش از مستندات هر برنامه می‌باشد که با کمک آن تفسیر برنامه، عیب‌یابی و استفاده توسط شخصی به جز برنامه‌نویس را آسان می‌کند. برای رسم فلوچارت آگاهی و تسلط بر مراحل مورد نیاز و ترتیب آنها جهت به دست آوردن نتیجه مورد نظر با استفاده از داده‌های ورودی به الگوریتمی که فلوچارت برای آن کشیده می‌شود، لازم است.