PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : کامپایل یعنی چی ؟



melina23
January 8th, 2016, 13:45
دوستان ممنون میشه بگید منظورشون چیه تو سرور

persian.developer
January 8th, 2016, 13:57
https://fa.wikipedia.org/wiki/%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84%D8%B1

cartman10mpi
January 8th, 2016, 16:25
مختصر اگه توضیح بدم اینه که رایانه ها و سیستم های دیجیتال با 0 و 1 کار میکنند(ولتاژهای کوچیک مثلا 0 تا 1.5 ولت ورودی رو 0 و 3.5 تا 5 ولت رو 1 تلقی میکنند(cmos)) . یعنی به زبان خیلی ساده باید نوشته بشوند تا رایانه بتونه پردازش بکنه . نوشتن برنامه ی ساده (سطح پایین) بسیار سخت هست و به قول معروف یوزر فرندلی نیست . به عنوان مثال یک نمونه از برنامه ی نوشته شده به زبان اسمبلی براتون قرار میدم :


module sstimer
(
input wire clk, reset,
input rp,
output wire [7:0] min, sec
);
reg [9:0] m_reg, s_reg, ms_reg;
wire [9:0] m_next, s_next, ms_next;
wire [9:0] m1_next, s1_next, ms1_next;
always @(posedge clk, posedge reset)
if (reset)
begin
m_reg <= 0;
s_reg <= 0;
ms_reg <= 0;
end
else
begin
m_reg <= m_next;
s_reg <= s_next;
ms_reg <= ms_next;
end
assign ms1_next = (ms_reg == 999) ? 0 : ms_reg + 1;
assign s1_next = (ms_reg == 999) ? ((s_reg == 59) ? 0 : s_reg + 1) : s_reg;
assign m1_next = ((ms_reg == 999) && (s_reg == 59)) ?
((m_reg == 59) ? 0 : m_reg + 1) : m_reg;
assign ms_next = (rp == 1) ? ms1_next : ms_reg;
assign s_next = (rp == 1) ? s1_next : s_reg;
assign m_next = (rp == 1) ? m1_next : m_reg;
assign min = m_reg;
assign sec = s_reg;
endmodule

این یک برنامه کرونومتر هست . میبینید فهمیدن منطق زبان از روی اون چقدر سخت هست . همین برنامه هم حتا کامپایل (تبدیل) میشه به یک فایل بیت تا توسط سخت افزار قابل اجرا باشه .
حالا زبان های برنامه نویسی امروزی برای راحتی یاد گیری ، استفاده و سریع بودن امکان نوشتن کد بالا رو در چند خط دارند . ولی نه اینکه رایانه برنامه های نوشته شده در چند خط رو میفهمه ، بلکه هر زبان به همراه یک کامپایلر وارد بازار میشه تا برنامه هایی که به اون زبان نوشته شده رو به زبان سطح پایین تبدیل کنه . و به این عمل میگن کامپایل کردن . در رایانه ها و نرم افزار ها سیستم عامل واسط بین سخت افزار و نرم افزار هست . بعضی وقت ها برنامه به سطح سیستم عامل کامپایل میشه بعضی وقت ها مستقیما به زبان سخت افزار . در بحث سرور هم به احتمال زیاد کامپایل برنامه های نوشته شده به زبان های تحت وب مثلا پی اچ پی هست تا بتونن پردازش بشند. چون شاخه ها زیاد هست و بحث مفصل ، بهتر هست خودتون تحقیقات بیشتری انجام بدید برای شناخت نحوه ی کاری برنامه ها و رابطه ی اونها با سخت افزار ها . بنده سعی کردم به طور مختصر توضیح بدم . امیدوارم مفید واقع بشه