Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 مایکروسافت امروز حدود ۶۵۰ کارمند را در بخش گیمینگ خود اخراج میکند. این اتفاق، چند ماه پس از اخراج ۱۹۰۰ کارمند اکتیویژن بلیزارد و ایکس باکس و پس از تعطیلی چند استودیو بازی، از جمله استودیوی آرکین آستین، توسعهدهندهی بازی ردفال، انجام میشود.
https://www.theverge.com/2024/9/12/24242695/microsoft-xbox-layoffs-650-employees
#خبر
@TheRaymondDev
https://www.theverge.com/2024/9/12/24242695/microsoft-xbox-layoffs-650-employees
#خبر
@TheRaymondDev
The Verge
Microsoft lays off 650 more Xbox employees
The cuts follow layoffs impacting 1,900 employees earlier this year.
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
گوگل Gemini Live رو به صورت رایگان برای همه کاربران عرضه کرده. جمنای لایو چیزی مشابه نسخه پیشرفته Voice Mode چتجیپیتیه.
Tweet
hadi @geekalerts
Tweet
hadi @geekalerts
Forwarded from Linuxor ?
سیستم عامل کنسول XBox به نظرتون Base بر چی هستش؟
Anonymous Quiz
20%
معلومه ویندوز، چون مال مایکروسافته
36%
لینوکسه، اکثر دیوایس های غیر دسکتاپی لینوکسن
44%
هرچی هست از خانواده یونیکسه
Forwarded from Yasha
برای ایردراپ GOATS آسیبپذیری خوب نتونستم دربیارم ولی یه اسکریپت نوشتم که هر ۵ دقیقه ۵۰۰ تا کوین میگیره. هر ۲۴ ساعت حدود 144k میشه، در ضمن از Pigs خیلی معتبرتره و ۱۳ میلیون کاربر داره. دارم براش ویدیو ضبط میکنم اگه تا آخرشب آماده نشد تایپش میکنم میفرستم حتما.
Telegram
$GOATS
$GOATS - The greatest of all Telegram tokens. Baa-lieve the hype!
Forwarded from Geek Alerts
شرکت OpenAI از جدیدترین خانواده مدل خودش، o1 رونمایی کرد. این مدل که بهقولی بهش اسم رمز Strawberry رو دادن، قراره قبل از پاسخ دادن بیشتر فکر کنن. درواقع OpenAI میگه که مدل جدیدش برای اجرای استدلالهای پیچیده آموزش داده شده و قبل از پاسخ دادن فکر میکنه و زنجیرهای طولانی از فکر و استدلال کردن تولید میکنه. توی تستهای اپنایآی این مدل مشابه دانشآموزان دکترا میتونن مسائل رو در رشتههای فیزیک، شیمی و زیستشناسی حل و تحلیل کنه. این مدل توانایی حل ۸۳درصد از سوالات جهانی المپیاد ریاضی رو داشته درصورتی که مدل قبلی فقط ۱۳ درصد بوده. همچنین تواناییهای کدزدن این مدل به حدی پیشرفت کرده که تونسته در کانتستهای سایت معروف از ۸۹درصد مسابقهدهندههای انسانی بهتر عمل کنه و مدل دیگهاشون که o1-ioi نام داره بهتر از ۹۳درصد.
https://openai.com/index/introducing-openai-o1-preview/
hadi @geekalerts
https://openai.com/index/introducing-openai-o1-preview/
hadi @geekalerts
Forwarded from Geek Alerts
شرکت OpenAI از جدیدترین مدل خودش، o1 رونمایی کرد.
این مدل که بهقولی بهش اسم رمز Strawberry رو دادن، قراره بسیار بهتر استدلال کنه. درواقع OpenAI میگه که مدل جدیدش برای اجرای استدلالهای پیچیده آموزش داده شده و قبل از پاسخ دادن فکر میکنه و زنجیرهای طولانی از فکر و استدلال کردن تولید میکنه. توی تستهای اپنایآی این مدل مشابه دانشآموزان دکترا میتونن مسائل رو در رشتههای فیزیک، شیمی و زیستشناسی حل و تحلیل کنه و بسیار بهتر از مدل قبل سوالات ریاضی و برنامهنویسی رو جواب بده. این مدل توانایی حل ۸۳درصد از سوالات جهانی المپیاد ریاضی رو داشته درصورتی که مدل قبلی فقط ۱۳ درصد بوده. همچنین تواناییهای کدزدن این مدل به حدی پیشرفت کرده که تونسته در کانتستهای سایت معروف از ۸۹درصد مسابقهدهندههای انسانی بهتر عمل کنه و مدل دیگهاشون که o1-ioi نام داره بهتر از ۹۳درصد. درحال حاضر این مدل به صورتی آزمایشی برای کاربران پلاس و تیم در دسترسه.
https://openai.com/index/introducing-openai-o1-preview/
hadi @geekalerts
این مدل که بهقولی بهش اسم رمز Strawberry رو دادن، قراره بسیار بهتر استدلال کنه. درواقع OpenAI میگه که مدل جدیدش برای اجرای استدلالهای پیچیده آموزش داده شده و قبل از پاسخ دادن فکر میکنه و زنجیرهای طولانی از فکر و استدلال کردن تولید میکنه. توی تستهای اپنایآی این مدل مشابه دانشآموزان دکترا میتونن مسائل رو در رشتههای فیزیک، شیمی و زیستشناسی حل و تحلیل کنه و بسیار بهتر از مدل قبل سوالات ریاضی و برنامهنویسی رو جواب بده. این مدل توانایی حل ۸۳درصد از سوالات جهانی المپیاد ریاضی رو داشته درصورتی که مدل قبلی فقط ۱۳ درصد بوده. همچنین تواناییهای کدزدن این مدل به حدی پیشرفت کرده که تونسته در کانتستهای سایت معروف از ۸۹درصد مسابقهدهندههای انسانی بهتر عمل کنه و مدل دیگهاشون که o1-ioi نام داره بهتر از ۹۳درصد. درحال حاضر این مدل به صورتی آزمایشی برای کاربران پلاس و تیم در دسترسه.
https://openai.com/index/introducing-openai-o1-preview/
hadi @geekalerts
Forwarded from Pishro App
🔰 موج جدید اتحادیه اروپا برای کنترل چتها: آیا سرویسهای پیامرسان در اروپا مسدود خواهند شد؟
روز دوشنبه، نسخه جدیدی از لایحه بیسابقه جهانی اتحادیه اروپا با هدف جستجوی تمام پیامها و چتهای خصوصی برای محتوای مشکوک (به اصطلاح کنترل چت یا مقررات سوء استفاده جنسی از کودکان) منتشر شد و کمی بعد توسط POLITICO فاش شد.
طبق آخرین پیشنهاد، ارائه دهندگان آزاد خواهند بود که از "هوش مصنوعی" برای طبقه بندی تصاویر و چتهای متنی ناشناخته به عنوان "مشکوک" استفاده کنند.
با این حال، آنها موظفند تمام چتها را برای محتوای غیرقانونی شناخته شده جستجو کنند و آنها را گزارش دهند، حتی به قیمت شکستن رمزگذاری ایمن end-to-end پیامرسان.
دولتهای اتحادیه اروپا تا 23 سپتامبر باید موضع خود را در مورد این پیشنهاد اتخاذ کنند و وزرای کشور اتحادیه اروپا نیز تا 10 اکتبر باید آن را تأیید کنند.
ارائه دهندگان پیامرسان Signal و Threema قبلاً اعلام کردهاند که هرگز موافقت نخواهند کرد که چنین روالهای نظارتی را در برنامههای خود ادغام کنند و ترجیح میدهند فعالیت خود را در اتحادیه اروپا تعطیل کنند.
منبع
👾 @pishroapp
روز دوشنبه، نسخه جدیدی از لایحه بیسابقه جهانی اتحادیه اروپا با هدف جستجوی تمام پیامها و چتهای خصوصی برای محتوای مشکوک (به اصطلاح کنترل چت یا مقررات سوء استفاده جنسی از کودکان) منتشر شد و کمی بعد توسط POLITICO فاش شد.
طبق آخرین پیشنهاد، ارائه دهندگان آزاد خواهند بود که از "هوش مصنوعی" برای طبقه بندی تصاویر و چتهای متنی ناشناخته به عنوان "مشکوک" استفاده کنند.
با این حال، آنها موظفند تمام چتها را برای محتوای غیرقانونی شناخته شده جستجو کنند و آنها را گزارش دهند، حتی به قیمت شکستن رمزگذاری ایمن end-to-end پیامرسان.
دولتهای اتحادیه اروپا تا 23 سپتامبر باید موضع خود را در مورد این پیشنهاد اتخاذ کنند و وزرای کشور اتحادیه اروپا نیز تا 10 اکتبر باید آن را تأیید کنند.
ارائه دهندگان پیامرسان Signal و Threema قبلاً اعلام کردهاند که هرگز موافقت نخواهند کرد که چنین روالهای نظارتی را در برنامههای خود ادغام کنند و ترجیح میدهند فعالیت خود را در اتحادیه اروپا تعطیل کنند.
منبع
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
چرا نباید رفع مشکلات لینوکس رو بسپریم به هوش مصنوعی؟
هوشمصنوعی خوبه، ولی وقتی پای گنو/لینوکس وسط باشه، بهتره آچار بهدست بشینی پای کار!
https://blog.parchlinux.com/~/%D9%81%D8%A7%D8%B1%D8%B3%DB%8C/%DA%86%D8%B1%D8%A7%20%D9%86%D8%A8%D8%A7%DB%8C%D8%AF%20%D8%B1%D9%81%D8%B9%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%DA%AF%D9%86%D9%88%2F%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3%20%D8%B1%D9%88%20%D8%A8%D8%B3%D9%BE%D8%B1%DB%8C%D9%85%20%D8%A8%D9%87%20%D9%87%D9%88%D8%B4%20%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C%D8%9F
🐧 @ParchLinux
هوشمصنوعی خوبه، ولی وقتی پای گنو/لینوکس وسط باشه، بهتره آچار بهدست بشینی پای کار!
https://blog.parchlinux.com/~/%D9%81%D8%A7%D8%B1%D8%B3%DB%8C/%DA%86%D8%B1%D8%A7%20%D9%86%D8%A8%D8%A7%DB%8C%D8%AF%20%D8%B1%D9%81%D8%B9%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%DA%AF%D9%86%D9%88%2F%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3%20%D8%B1%D9%88%20%D8%A8%D8%B3%D9%BE%D8%B1%DB%8C%D9%85%20%D8%A8%D9%87%20%D9%87%D9%88%D8%B4%20%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C%D8%9F
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کانال اطلاعرسانی توزیع پارچ (RSS to Telegram Bot)
via فارسی (author: Parch Linux)
Forwarded from Yasha
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Anophel | آنوفل
بلوک کد های try catch تو جاوااسکریپت بنظرم خیلی طولانی هست ولی جاش می تونید از Safe Assignment Operator که به اکمااسکریپت اضافه شده استفاده کنید، این اپراتور به صورت "=?" ، این باعث میشه کد هاتون تمیز تر و error handling خوبی داشته باشید.
آنوفل دنیای برنامه نویسی
#جاوااسکریپت #جاوا_اسکریپت #Js #code #javanoscript
آنوفل دنیای برنامه نویسی
#جاوااسکریپت #جاوا_اسکریپت #Js #code #javanoscript
Forwarded from Bardiaism
This media is not supported in your browser
VIEW IN TELEGRAM
کل پروسه توسعه پروژه تریکس تو یک ویدیو که از روی گیت پروژه به کمک دستور
شما هم میتونید با همین دستور که روی مخازن رسمی اکثر توزیعهای لینوکسی هست و خیلی راحت نصب میشه، برای پروژههای خودتون یا شرکتتون از این ویدیوها بسازید.
نصبش روی اوبونتو:
gource ساخته شده.شما هم میتونید با همین دستور که روی مخازن رسمی اکثر توزیعهای لینوکسی هست و خیلی راحت نصب میشه، برای پروژههای خودتون یا شرکتتون از این ویدیوها بسازید.
نصبش روی اوبونتو:
sudo apt install gource
ویدیو بالا با دستور و سوییچهای زیر ساخته شده:gource --auto-skip-seconds 2 --seconds-per-day 0.05 --user-scale 2 -2560x1600 --date-format "%Y %m %d" -r 60 --loop --hide filenames,progress --font-size 40 --padding 1.9 --background-colour 000000 --disable-auto-rotate
@BardiaismForwarded from کانال اطلاعرسانی توزیع پارچ (Sohrab)
بستهٔ پکمن پارچ بهروز شد.
این بهروزرسانی حاوی تغییرات جدیدی از جمله انتقال مخازن پارچ از گیتهاب به میرور میباشد که سرعت دریافت بستهها و همچنین عملکرد مدیربسته را بهبود میبخشد.
@ParchLinux
این بهروزرسانی حاوی تغییرات جدیدی از جمله انتقال مخازن پارچ از گیتهاب به میرور میباشد که سرعت دریافت بستهها و همچنین عملکرد مدیربسته را بهبود میبخشد.
@ParchLinux
Forwarded from Yasha
YouTube
آسیبپذیری ایردراپ Pigs و GOATS - گرفتن توکن بینهایت
توی این ویدیو با یه آسیبپذیری خیلی ساده توی ایردراپ Pigs باهمدیگه موجودی اکانتمون رو کاملا بدون هیچ سقفی تغییر میدیم. با یه اسکریپت ساده هم میتونیم هر ۵ دقیقه ۵۰۰ تا کوین رایگان توی ایردراپ GOATS ببینیم و از بقیهی کاربرا جلو بیوفتیم.
اسکریپت ربات GOAT:…
اسکریپت ربات GOAT:…
Forwarded from Yasha
با این باگی که امروز توی ایردراپ Pigs پیدا کردم میتونید هر مقداری که خواستید رو به موجودی اکانتتون اضافه کنید.
توی دستور curl زیر، قسمت
اگه کار نکرد اینو بزنید:
این باگ رو بهتره که با یه اکانت جدید تست کنید چون ممکنه متوجه بشن و خب اکانت شما رو ببندن. همچنین اگه خیلی عدد غیرمعقولی رو اضافه کنید هم ممکنه متوجه شن و بن شید.
@Yasha
توی دستور curl زیر، قسمت
{userid} آیدی عددی اکانتتون رو بذارید و داخل {amount} هم مقداری که میخواین به موجودی شما اضافه بشه. بعدم توی ترمینال اجراش کنید.curl https://pig.chaincrops.io/app/mark_task -X POST -H 'Content-Type: application/json' -d '{"user_id": "{userid}", "task_id": "603", "bonus": "{amount}"}'اگه کار نکرد اینو بزنید:
curl https://pig.chaincrops.io/app/mark_task -X POST -H "Content-Type: application/json" -d "{\"user_id\": \"{userid}\", \"task_id\": \"603\", \"bonus\": \"{amount}\"}"این باگ رو بهتره که با یه اکانت جدید تست کنید چون ممکنه متوجه بشن و خب اکانت شما رو ببندن. همچنین اگه خیلی عدد غیرمعقولی رو اضافه کنید هم ممکنه متوجه شن و بن شید.
@Yasha
Forwarded from Gopher Academy
🔵 عنوان مقاله
A Small Mandelbrot Set Renderer in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به صورت مجزا و گام به گام به بررسی چگونگی ایجاد یک موتور رندر کردن فرکتال ساده با استفاده از زبان برنامهنویسی Go پرداخته است. این موتور قابلیت انطباق و اجرا شدن تحت وب از طریق WebAssembly را دارا است که این امکان را به کاربران میدهد تا برنامههای بهینهتر و سریعتری را در محیط وب اجرا کنند. کد مرتبط با این پروژه در یک مخزن GitHub قابل دسترسی است. این مقاله ممکن است به عنوان یک راهنمای مفید برای توسعهدهندگانی که به دنبال یادگیری ترکیب این فناوریها و ایجاد برنامههای کاربردی تعاملی تر و پویاتر هستند، عمل کند.
🟣لینک مقاله:
https://golangweekly.com/link/159579/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
A Small Mandelbrot Set Renderer in Go
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته است به صورت مجزا و گام به گام به بررسی چگونگی ایجاد یک موتور رندر کردن فرکتال ساده با استفاده از زبان برنامهنویسی Go پرداخته است. این موتور قابلیت انطباق و اجرا شدن تحت وب از طریق WebAssembly را دارا است که این امکان را به کاربران میدهد تا برنامههای بهینهتر و سریعتری را در محیط وب اجرا کنند. کد مرتبط با این پروژه در یک مخزن GitHub قابل دسترسی است. این مقاله ممکن است به عنوان یک راهنمای مفید برای توسعهدهندگانی که به دنبال یادگیری ترکیب این فناوریها و ایجاد برنامههای کاربردی تعاملی تر و پویاتر هستند، عمل کند.
🟣لینک مقاله:
https://golangweekly.com/link/159579/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from ⚝
amar.SabteAhval.ir
آمار ثبت احوال که به صورت عمومی منتشر میشود و اخیراً آمار کودکمادران و کودکهمسران از آن حذف و خبرساز شد:
#gov #info #data
@amiria703_channel
آمار ثبت احوال که به صورت عمومی منتشر میشود و اخیراً آمار کودکمادران و کودکهمسران از آن حذف و خبرساز شد:
#gov #info #data
@amiria703_channel
Forwarded from Yasha
توی این ویدیو یوتیوب باگ ایردراپ Pigs و GOATS رو کامل توضیح دادم. ویدیو یکم جنبه آموزشی هم داره، علاوه بر آموزش باگ این دو تا ایردراپ یاد میگیرید که چطوری میشه از رباتای دیگه هم باگ دراورد.
https://www.youtube.com/watch?v=2CdrMF-7xnU
@Yasha
https://www.youtube.com/watch?v=2CdrMF-7xnU
@Yasha
YouTube
آسیبپذیری ایردراپ Pigs و GOATS - گرفتن توکن بینهایت
توی این ویدیو با یه آسیبپذیری خیلی ساده توی ایردراپ Pigs باهمدیگه موجودی اکانتمون رو کاملا بدون هیچ سقفی تغییر میدیم. با یه اسکریپت ساده هم میتونیم هر ۵ دقیقه ۵۰۰ تا کوین رایگان توی ایردراپ GOATS ببینیم و از بقیهی کاربرا جلو بیوفتیم.
اسکریپت ربات GOAT:…
اسکریپت ربات GOAT:…
Forwarded from Code Module | کد ماژول (genix)
سینتکس و سمنتیک چیه؟ (Syntax and Semantics) ☠
برخلاف زبانهای طبیعی که افکار و احساسات خودمون رو با اون ها نشون میدیم، زبانهای برنامهنویسی رو میشه بهعنوان زبانهای مصنوعی در نظر گرفت که توسط انسان ها برای برقراری ارتباط با رایانهها، و سپس مهمتر از همه برای برقراری ارتباط الگوریتمها بین مردم تعریف میشن.
به عنوان مثال، تعاریف زبان از سه جزء تشکیل شده:
🫧 Syntax: سینتکس یک زبان برنامه نویسی مجموعه قوانینی هست که ترکیبی از نمادها رو تعریف میکنه که به عنوان برنامه هایی با ساختار صحیح، در اون زبان در نظر گرفته میشن. سینتکس یک زبان شکل سطحی اون رو مشخص میکنه. زبان های برنامه نویسی مبتنی بر متن بر اساس دنباله ای از کاراکترها هستن. گرامر واژگانی یک زبان متنی مشخص میکنه که چگونه کاراکترها باید به توکن ها تقسیم بشن. همچنین روابط رسمی بین اجزای تشکیل دهنده یک زبان رو تعریف میکنه و بدین وسیله توصیفی ساختاری از عبارات مختلفی که استرینگ های قانونی در زبان رو تشکیل میدن ارائه میده. و در نهایت سینتکس صرفاً به شکل و ساختار نمادها(سیمبل ها) در یک زبان می پردازه بدون اینکه به معنای اون ها توجه بشه.
🫧 Semantics: به معنای معتبر بودن یا نبودن جمله هست. سمنتیک معنای رشته های معتبر سینتکس رو در یک زبان آشکار میکنه. برای زبان های طبیعی، این به معنای همبستگی جملات و عبارات با اشیاء، افکار و احساسات تجربیات ماست. برای زبانهای برنامهنویسی، سمنتیک رفتاری رو توصیف میکنه که کامپیوتر هنگام اجرای یک برنامه در زبان از اون پیروی میکنه. ما ممکنه این رفتار رو با توصیف رابطه بین ورودی و خروجی یک برنامه یا با توضیح گام به گام سینتکس اجرای یک برنامه بر روی یک ماشین واقعی یا انتزاعی فاش کنیم. سمنتیک اصطلاح کلی برای مطالعه معناست. در علوم کامپیوتر موضوع سمنتیک زبان برنامه نویسی به دنبال این است که معنای ریاضی دقیقی به برنامه ها بده.
سمنتیک به 2 سطح تقسیم میشه. سطح پایین و سطح بالا. که توضیحات هرکدوم متفاوت هست. که خودتون میتونین تحقیق کنید.
🫧 Pragmatics: پراگماتیک به جنبه هایی از زبان اشاره میکنه که کاربران زبان رو درگیر میکنه، یعنی پدیده های روانشناختی و جامعه شناختی مانند سودمندی، دامنه کاربرد و تأثیرات بر استفاده کنندگان. برای زبان های برنامه نویسی، عمل شناسی شامل موضوعاتی مانند سهولت اجرا، کارایی در کاربرد و روش برنامه نویسی هست.
اما تجزیه تحلیل سمنتیک و سینتکس در کامپایلر کجا قرار میگیره؟
معمولاً، تجزیه و تحلیل سینتکس و سمنتیک کد در قسمت "frontend" کامپایلر انجام میشه.
Syntax: کامپایلر توکن هایی رو برای هر کلمه کلیدی و نماد تولید میکنه: توکن ها حاوی اطلاعات نوع کلمه کلیدی و مکان اون در کد هست. با استفاده از این نشانه ها، یک AST (مخفف Abstract Syntax Tree) ایجاد و تجزیه و تحلیل میشن. چیزی که کامپایلر در اینجا بررسی میکنه این هست که آیا کد از نظر لغوی معنیدار است، یعنی آیا "توالی کلمات کلیدی" با قوانین زبان مطابقت داره؟(خطاهای سینتکسی(fucking syntax error😩) در این مرحله ایجاد میشه.)
سمنتیک: اکنون، کامپایلر بررسی میکنه که آیا عملیات کد شما منطقی هست یا خیر. به عنوان مثال اگر زبان از Type Inference پشتیبانی میکنه، اگر می خواهید استرینگی ای رو به یک float اختصاص بدین، خطای سمنتیک گزارش میشه. یا دوبار یک متغیر رو اعلام کنین. اینها خطاهایی هستند که از نظر دستوری و سینتکسی درست هستن، اما در طول عملیات هیچ معنایی ندارن. نکته جانبی: برای بررسی اینکه آیا یک متغیر دو بار اعلام شده است یا خیر، کامپایلر یک symbol table رو مدیریت میکنه.
شاید درکش در نگاه اول سخت باشه و ممکنه توضیحات من گیجتون کنه، ولی سعی کردم توضیحات ساده و کلی درموردشون بدم. برای اطلاعات بیشتر این PDF و مقالات زیر رو بخونید.
- PDF
- Article
- PDF
برخلاف زبانهای طبیعی که افکار و احساسات خودمون رو با اون ها نشون میدیم، زبانهای برنامهنویسی رو میشه بهعنوان زبانهای مصنوعی در نظر گرفت که توسط انسان ها برای برقراری ارتباط با رایانهها، و سپس مهمتر از همه برای برقراری ارتباط الگوریتمها بین مردم تعریف میشن.
به عنوان مثال، تعاریف زبان از سه جزء تشکیل شده:
🫧 Syntax: سینتکس یک زبان برنامه نویسی مجموعه قوانینی هست که ترکیبی از نمادها رو تعریف میکنه که به عنوان برنامه هایی با ساختار صحیح، در اون زبان در نظر گرفته میشن. سینتکس یک زبان شکل سطحی اون رو مشخص میکنه. زبان های برنامه نویسی مبتنی بر متن بر اساس دنباله ای از کاراکترها هستن. گرامر واژگانی یک زبان متنی مشخص میکنه که چگونه کاراکترها باید به توکن ها تقسیم بشن. همچنین روابط رسمی بین اجزای تشکیل دهنده یک زبان رو تعریف میکنه و بدین وسیله توصیفی ساختاری از عبارات مختلفی که استرینگ های قانونی در زبان رو تشکیل میدن ارائه میده. و در نهایت سینتکس صرفاً به شکل و ساختار نمادها(سیمبل ها) در یک زبان می پردازه بدون اینکه به معنای اون ها توجه بشه.
🫧 Semantics: به معنای معتبر بودن یا نبودن جمله هست. سمنتیک معنای رشته های معتبر سینتکس رو در یک زبان آشکار میکنه. برای زبان های طبیعی، این به معنای همبستگی جملات و عبارات با اشیاء، افکار و احساسات تجربیات ماست. برای زبانهای برنامهنویسی، سمنتیک رفتاری رو توصیف میکنه که کامپیوتر هنگام اجرای یک برنامه در زبان از اون پیروی میکنه. ما ممکنه این رفتار رو با توصیف رابطه بین ورودی و خروجی یک برنامه یا با توضیح گام به گام سینتکس اجرای یک برنامه بر روی یک ماشین واقعی یا انتزاعی فاش کنیم. سمنتیک اصطلاح کلی برای مطالعه معناست. در علوم کامپیوتر موضوع سمنتیک زبان برنامه نویسی به دنبال این است که معنای ریاضی دقیقی به برنامه ها بده.
🫧 Pragmatics: پراگماتیک به جنبه هایی از زبان اشاره میکنه که کاربران زبان رو درگیر میکنه، یعنی پدیده های روانشناختی و جامعه شناختی مانند سودمندی، دامنه کاربرد و تأثیرات بر استفاده کنندگان. برای زبان های برنامه نویسی، عمل شناسی شامل موضوعاتی مانند سهولت اجرا، کارایی در کاربرد و روش برنامه نویسی هست.
اما تجزیه تحلیل سمنتیک و سینتکس در کامپایلر کجا قرار میگیره؟
معمولاً، تجزیه و تحلیل سینتکس و سمنتیک کد در قسمت "frontend" کامپایلر انجام میشه.
Syntax: کامپایلر توکن هایی رو برای هر کلمه کلیدی و نماد تولید میکنه: توکن ها حاوی اطلاعات نوع کلمه کلیدی و مکان اون در کد هست. با استفاده از این نشانه ها، یک AST (مخفف Abstract Syntax Tree) ایجاد و تجزیه و تحلیل میشن. چیزی که کامپایلر در اینجا بررسی میکنه این هست که آیا کد از نظر لغوی معنیدار است، یعنی آیا "توالی کلمات کلیدی" با قوانین زبان مطابقت داره؟(خطاهای سینتکسی(fucking syntax error😩) در این مرحله ایجاد میشه.)
سمنتیک: اکنون، کامپایلر بررسی میکنه که آیا عملیات کد شما منطقی هست یا خیر. به عنوان مثال اگر زبان از Type Inference پشتیبانی میکنه، اگر می خواهید استرینگی ای رو به یک float اختصاص بدین، خطای سمنتیک گزارش میشه. یا دوبار یک متغیر رو اعلام کنین. اینها خطاهایی هستند که از نظر دستوری و سینتکسی درست هستن، اما در طول عملیات هیچ معنایی ندارن. نکته جانبی: برای بررسی اینکه آیا یک متغیر دو بار اعلام شده است یا خیر، کامپایلر یک symbol table رو مدیریت میکنه.
شاید درکش در نگاه اول سخت باشه و ممکنه توضیحات من گیجتون کنه، ولی سعی کردم توضیحات ساده و کلی درموردشون بدم. برای اطلاعات بیشتر این PDF و مقالات زیر رو بخونید.
- Article