Gohar's Academy

معلم و فریلنسر

تبلیغات تبلیغات

شنبه و اصطلاح کامپیوتری (Syntax and Semantic)

در پست قبلی (لینک) در مورد زمان کامپایل و زمان اجرا صحبت کردیم. گفتیم خطاهای زمان کامپایل دو نوع خطای  Syntax و Semantic است.  Syntax و Semantic چه هستند؟ برای اینکه یک برنامه کامپیوتری ایجاد شود ابتدا مسأله به صورت کامل صورت بندی و سپس روش حل مسأله نوشته می شود. در بیشتر مواقع یک برنامه به مسأله های کوچک تر تقسیم شود. به روش حل مسأله الگوریتم می گوییم.  الگوریتم مستقل از زبان برنامه نویسی است و دارای قواعدی است که در یک پست دیگر به آن می پردازیم اما همین قدر بدانیم که وقتی توضیح حل یک مسأله را به زبان مادری به صورت واضح بیان کنیم به آن الگوریتم می گوییم.  سپس الگوریتم با یک زبان برنامه نویسی نوشته و به کامپیوتر داده می شود. زبان های برنامه نویسی عموماً به زبان انسان نزدیک هستند یعنی دستورات آنها کلمات قابل فهم برای انسان است. برنامه نوشته شده از لایه های مختلف برنامه نویسی عبور می کند تا
ادامه مطلب

شنبه و اصطلاح کامپیوتری (hashing)

هشینگ یک فرآیند است که در طی آن کلید یا رشته ای از کاراکترها به مقدار دیگری تبدیل می شود. حاصل این فرآیند معمولاً توسط یک مقدار با اندازه ثابت و کوتاه هست.   بیشترین کاربرد فرآیند Hashing در ایجاد Hash table است که جفت کلید-مقدار را نگه میدارد. در این حدول کلیدها توسط تابع hash به یک عدد که اندیس مقدار موردنظر هست تبدیل می شوند. اندازه hash table نامحدود است.   Hash Function  این تابع یک الگوریتم برمبنای محاسبات ریاضیاتی است. بهترین الگوریتم آن است که امکان به دست آوردن کلید از طریق hash مقدور نباشد.     بیشترین کاربردهای Hashing  Data retrieval نگاشت داده های جفت کلید-مقدار به گونه ای که توضیح داده شد کلیدها به یک داده با اندازه ثابت تبدیل می شوند که به عنوان اندیس مقدار موردنظر آن در حافظه استفاده می شوند.    Digital Signature از آنجا که فرآیند hashing یک طرفه است و همچنین مقدار hash  بر
ادامه مطلب

شنبه و اصطلاح کامپیوتری (ادامه Hash)

در مطلب قبلی در مورد Hashing نوشتم. نمونه هایی از آن در دنیای واقعی : کد شناسایی دانشجویی کد کتاب در کتابخانه اطلاعات دانشجو <----- می رسیم به ----- کد شناسایی دانشجو  اطلاعات کتاب <----- می رسیم به ------ کد کتاب    کد شناسایی دانشجو یا کد کتاب در موارد بالا کلیدهای ما هستند برای رسیدن به اطلاعات دانشجو یا اطلاعات کتاب. برای شناسایی کلید در یک سیستم باید موارد زیر را در نظر بگیریم : اول برای هر داده منحصربفرد (یکتا) باشد، دوم برای همه داده ها موجود باشد (تهی نباشد) سوم ثابت باشد.  سپس کلید به عنوان ورودی به تابع هشینگ ارسال می شود و خروجی کلید هش شده (اندیس) خواهد بود، به صورت زیر: Key ------- hash function ------> hash key هر مقدار به یک کلید مرتبط می شود و با پیچیدگی زمانی O(1) قابل دسترسی است. سپس تابع hash یک اندیس را محاسبه می کند که مکانی در حافظه که جفت کلید-مقدار قابل دست
ادامه مطلب

وبلاگ های پیشنهادی

جستجو در وبلاگ ها