From 45a52143704f786785112fb5f4f71fe0f87c7611 Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Mon, 25 Nov 2024 00:58:43 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grammar.pdf | Bin 0 -> 87587 bytes grammar.tex | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 grammar.pdf create mode 100644 grammar.tex diff --git a/grammar.pdf b/grammar.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d19368832462794e49c1f924e3d17aa48c9bf4d GIT binary patch literal 87587 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 z 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 R+_)iNIJcCPfw>{~e*rPZUv~fi literal 0 HcmV?d00001 diff --git a/grammar.tex b/grammar.tex new file mode 100644 index 0000000..8b90e7c --- /dev/null +++ b/grammar.tex @@ -0,0 +1,108 @@ +\documentclass[12pt]{article} +\title{Definition Homework} +\usepackage {amsmath} +\usepackage {amssymb} +\usepackage{enumerate} +\usepackage{cmap} +\usepackage{mathtext} +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[english,russian]{babel} +\usepackage{indentfirst} + +\setlength{\textwidth}{7.0in} +\setlength{\oddsidemargin}{-0.35in} +\setlength{\topmargin}{-0.5in} +\setlength{\textheight}{9.0in} +\setlength{\parindent}{0.3in} +\usepackage{alltt} +\begin{document} +\indent +\section{Определение грамматики} +\begin{enumerate} + \item $\Sigma = \{[a-zA-Z],.,\backslash, let, =, (, ),\backslash n\}$ + \item $N = \{application, definition, defname, term, lambda-abstraction, variable, input\}$ + \item $S = input$ + \item $P:$ + \begin{enumerate} [1)] + \item $ ::= let = $. + \item $ ::= A | B | ... | Z$. + \item $ ::= | () | | | <~defname>$ + \item $ ::= a | b | ... | z$ + \item $ = \backslash\{\}.$ + \item $ = $ + \item $ = \{ \backslash n\} $. + \end{enumerate} +\end{enumerate} +\section{Пример} + \begin{verbatim} + let S = \ x y z.x z (y z) + let K = \ x y.x + S K K + \end{verbatim} + $$ \Rightarrow \backslash n \{ \backslash n\} \Rightarrow$$ + Первое $definition$: + \begin{eqnarray} + \Rightarrow \\ + let = \Rightarrow \\ + let\ S = \Rightarrow \\ + let \ S = \Rightarrow \\ + let \ S = \backslash\{\}. \Rightarrow \\ + let \ S = \backslash. \Rightarrow \\ + let \ S = \backslash x . \Rightarrow \\ + let \ S = \backslash x y . \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z. \Rightarrow \\ + let \ S = \backslash x y z.x \Rightarrow \\ + let \ S = \backslash x y z.x \Rightarrow \\ + let \ S = \backslash x y z.x z \Rightarrow \\ + let \ S = \backslash x y z.x z () \Rightarrow \\ + let \ S = \backslash x y z.x z () \Rightarrow \\ + let \ S = \backslash x y z.x z ( ) \Rightarrow \\ + let \ S = \backslash x y z.x z ( ) \Rightarrow \\ + let \ S = \backslash x y z.x z (y ) \Rightarrow \\ + let \ S = \backslash x y z.x z (y z) \Rightarrow + \end{eqnarray} + Итог: + \begin{verbatim} + let S = \ x y z.x z (y z) + \end{verbatim} + Второе $definition$: + \begin{eqnarray} + \Rightarrow \\ + let = \Rightarrow \\ + let \ K = \Rightarrow \\ + let \ K = \Rightarrow \\ + let \ K = \backslash\{\}. \Rightarrow \\ + let \ K = \backslash. \Rightarrow \\ + let \ K = \backslash x . \Rightarrow \\ + let \ K = \backslash x y. \Rightarrow \\ + let \ K = \backslash x y z. \Rightarrow \\ + let \ K = \backslash x y z.x \Rightarrow + \end{eqnarray} + Итог: + \begin{verbatim} + let S = \ x y z.x z (y z) + let K = \ x y.x + \end{verbatim} + $term$: + \begin{eqnarray} + \Rightarrow \\ + \Rightarrow \\ + \Rightarrow \\ + \Rightarrow \\ + \Rightarrow \\ + \Rightarrow \\ + S K K \Rightarrow + \end{eqnarray} + Итог: + \begin{verbatim} + let S = \ x y z.x z (y z) + let K = \ x y.x + S K K + \end{verbatim} +\end{document} \ No newline at end of file From ec23718e50cfc0108353430bb98412dda58f55d5 Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Mon, 25 Nov 2024 10:09:22 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=D0=B0=20=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5,=20=D0=BE?= =?UTF-8?q?=D1=82=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Crawler.Tests/Crawler.Tests.fsproj | 37 ++++++++++++ Crawler.Tests/CrawlerTest.fs | 83 ++++++++++++++++++++++++++ Crawler.Tests/Program.fs | 4 ++ Lazy.Tests/Lazy.Tests.fsproj | 37 ++++++++++++ Lazy.Tests/LazyTests.fs | 48 +++++++++++++++ Lazy.Tests/Program.fs | 4 ++ Lazy/Lazy.fs | 44 ++++++++++++++ Lazy/Lazy.fsproj | 12 ++++ Lazy/Lazy.sln | 31 ++++++++++ "\320\241rawler/Crawler.fs" | 55 +++++++++++++++++ "\320\241rawler/\320\241rawler.fsproj" | 17 ++++++ "\320\241rawler/\320\241rawler.sln" | 31 ++++++++++ 12 files changed, 403 insertions(+) create mode 100644 Crawler.Tests/Crawler.Tests.fsproj create mode 100644 Crawler.Tests/CrawlerTest.fs create mode 100644 Crawler.Tests/Program.fs create mode 100644 Lazy.Tests/Lazy.Tests.fsproj create mode 100644 Lazy.Tests/LazyTests.fs create mode 100644 Lazy.Tests/Program.fs create mode 100644 Lazy/Lazy.fs create mode 100644 Lazy/Lazy.fsproj create mode 100644 Lazy/Lazy.sln create mode 100644 "\320\241rawler/Crawler.fs" create mode 100644 "\320\241rawler/\320\241rawler.fsproj" create mode 100644 "\320\241rawler/\320\241rawler.sln" diff --git a/Crawler.Tests/Crawler.Tests.fsproj b/Crawler.Tests/Crawler.Tests.fsproj new file mode 100644 index 0000000..fd28aa9 --- /dev/null +++ b/Crawler.Tests/Crawler.Tests.fsproj @@ -0,0 +1,37 @@ + + + + net7.0 + + false + false + true + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive +all + + runtime; build; native; contentfiles; analyzers; buildtransitive +all + + + + + + + + + + + + + diff --git a/Crawler.Tests/CrawlerTest.fs b/Crawler.Tests/CrawlerTest.fs new file mode 100644 index 0000000..c25ff41 --- /dev/null +++ b/Crawler.Tests/CrawlerTest.fs @@ -0,0 +1,83 @@ +module Crawler.Tests + +open NUnit.Framework +open FsUnit +open Moq +open Сrawler.Сrawler +open System.Net.Http + +let informationInTestUrl = + "
\\\\"" + +let fstLink = "" +let sndLink = "" + +[] +let ``Incorrect url test`` () = + let mockClient = new Mock() + + mockClient + .Setup(fun c -> c.GetStringAsync(It.IsAny())) + .Throws() + |> ignore + + let result = + downloadPagesFrom (mockClient.Object, "test_url") |> Async.RunSynchronously + + result.IsNone |> should be True + +[] +let ``Correct input — correct result`` () = + let mockClient = new Mock() + + mockClient + .Setup(fun c -> c.GetStringAsync("test_url")) + .ReturnsAsync(informationInTestUrl) + |> ignore + + mockClient.Setup(fun c -> c.GetStringAsync(fstLink)).ReturnsAsync("text link 1") + |> ignore + + mockClient.Setup(fun c -> c.GetStringAsync(sndLink)).ReturnsAsync("text link 2") + |> ignore + + let result = + downloadPagesFrom (mockClient.Object, "test_url") |> Async.RunSynchronously + + result.IsNone |> should be False + let resultValue = result.Value + + let expected = + seq { + (fstLink, 11) + (sndLink, 11) + } + + resultValue |> should equal expected + +[] +let ``Returns downloaded without errors links information test`` () = + let mockClient = new Mock() + + mockClient + .Setup(fun c -> c.GetStringAsync("test_url")) + .ReturnsAsync(informationInTestUrl) + |> ignore + + mockClient.Setup(fun c -> c.GetStringAsync(fstLink)).ReturnsAsync("text link 1") + |> ignore + + mockClient + .Setup(fun c -> c.GetStringAsync(sndLink)) + .Throws() + |> ignore + + let result = + downloadPagesFrom (mockClient.Object, "test_url") |> Async.RunSynchronously + + result.IsNone |> should be False + let resultValue = result.Value + + let expected = seq { (fstLink, 11) } + + resultValue |> should equal expected diff --git a/Crawler.Tests/Program.fs b/Crawler.Tests/Program.fs new file mode 100644 index 0000000..5fa22d1 --- /dev/null +++ b/Crawler.Tests/Program.fs @@ -0,0 +1,4 @@ +module Program = + + [] + let main _ = 0 diff --git a/Lazy.Tests/Lazy.Tests.fsproj b/Lazy.Tests/Lazy.Tests.fsproj new file mode 100644 index 0000000..7ad20b5 --- /dev/null +++ b/Lazy.Tests/Lazy.Tests.fsproj @@ -0,0 +1,37 @@ + + + + net7.0 + + false + false + true + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive +all + + runtime; build; native; contentfiles; analyzers; buildtransitive +all + + + + + + + + + + + + + diff --git a/Lazy.Tests/LazyTests.fs b/Lazy.Tests/LazyTests.fs new file mode 100644 index 0000000..f29a784 --- /dev/null +++ b/Lazy.Tests/LazyTests.fs @@ -0,0 +1,48 @@ +module Lazy.Tests + +open NUnit.Framework +open FsCheck +open System.Threading +open Lazy + +[] +let ``Consistent Lazy returns same calculation result`` () = + let consistentLazyChecker (supplier: unit -> int) = + let newLazy = СonsistentLazy(supplier) :> ILazy + let fstResult = newLazy.Get() + let sndResult = newLazy.Get() + let thrdResult = newLazy.Get() + fstResult = sndResult && sndResult = thrdResult + + Check.Quick consistentLazyChecker + +let lazies = + [ (fun supplier -> LockLazy(supplier) :> ILazy) + (fun supplier -> FreeLockLazy(supplier) :> ILazy) ] + |> List.map (fun x -> TestCaseData(x)) + +[] +let ``Lock and free lock Lazies execute supplier one time`` (newILazy: (unit -> int) -> ILazy) = + + let multiThreadLazyChecker (supplier: unit -> int) = + let event = new ManualResetEvent(false) + let multiThreadLazy = newILazy supplier + + let task = + async { + event.WaitOne() |> ignore + return multiThreadLazy.Get() + } + + let taskSeq = Seq.init 10 (fun _ -> task) |> Async.Parallel + Thread.Sleep(100) + event.Set() |> ignore + let results = taskSeq |> Async.RunSynchronously + let mutable isEqual = true + + for result in results do + isEqual <- (result = results.[0]) && isEqual + + isEqual + + Check.Quick multiThreadLazyChecker diff --git a/Lazy.Tests/Program.fs b/Lazy.Tests/Program.fs new file mode 100644 index 0000000..5fa22d1 --- /dev/null +++ b/Lazy.Tests/Program.fs @@ -0,0 +1,4 @@ +module Program = + + [] + let main _ = 0 diff --git a/Lazy/Lazy.fs b/Lazy/Lazy.fs new file mode 100644 index 0000000..14c0429 --- /dev/null +++ b/Lazy/Lazy.fs @@ -0,0 +1,44 @@ +namespace Lazy + +open System.Threading + +module Lazy = + type ILazy<'a> = + abstract member Get: unit -> 'a + + type СonsistentLazy<'a>(supplier: unit -> 'a) = + let mutable value: Option<'a> = None + + interface ILazy<'a> with + member this.Get() = + match value with + | None -> + value <- Some(supplier ()) + value.Value + | Some x -> x + + type LockLazy<'a>(supplier: unit -> 'a) = + let mutable value: Option<'a> = None + let lockObj = obj () + + interface ILazy<'a> with + member this.Get() = + Monitor.Enter(lockObj) + + try + match value with + | None -> + value <- Some(supplier ()) + value.Value + | Some x -> x + finally + Monitor.Exit(lockObj) + + type FreeLockLazy<'a>(supplier: unit -> 'a) = + let mutable value: Option<'a> = None + + interface ILazy<'a> with + member this.Get() = + match Interlocked.CompareExchange(&value, Some(supplier ()), None) with + | Some x -> x + | None -> value.Value diff --git a/Lazy/Lazy.fsproj b/Lazy/Lazy.fsproj new file mode 100644 index 0000000..1b8c425 --- /dev/null +++ b/Lazy/Lazy.fsproj @@ -0,0 +1,12 @@ + + + + net7.0 + true + + + + + + + diff --git a/Lazy/Lazy.sln b/Lazy/Lazy.sln new file mode 100644 index 0000000..d89ebec --- /dev/null +++ b/Lazy/Lazy.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 25.0.1706.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Lazy", "Lazy.fsproj", "{EDC31770-4B46-45AA-B1C3-E545B53BCD61}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Lazy.Tests", "..\Lazy.Tests\Lazy.Tests.fsproj", "{9E8DBA1A-61A6-4573-A20D-04959A4399C6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EDC31770-4B46-45AA-B1C3-E545B53BCD61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EDC31770-4B46-45AA-B1C3-E545B53BCD61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EDC31770-4B46-45AA-B1C3-E545B53BCD61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EDC31770-4B46-45AA-B1C3-E545B53BCD61}.Release|Any CPU.Build.0 = Release|Any CPU + {9E8DBA1A-61A6-4573-A20D-04959A4399C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E8DBA1A-61A6-4573-A20D-04959A4399C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E8DBA1A-61A6-4573-A20D-04959A4399C6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E8DBA1A-61A6-4573-A20D-04959A4399C6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D31E6CAF-FE9C-45C4-9FE3-024C5F8B0609} + EndGlobalSection +EndGlobal diff --git "a/\320\241rawler/Crawler.fs" "b/\320\241rawler/Crawler.fs" new file mode 100644 index 0000000..12b1d81 --- /dev/null +++ "b/\320\241rawler/Crawler.fs" @@ -0,0 +1,55 @@ +namespace Сrawler + +open System.Text.RegularExpressions +open System.Net.Http +open System.Threading.Tasks + +module Сrawler = + type IHttpClient = + abstract member GetStringAsync: string -> Task + + let getHtmlLinks (urlContent: string) = + let regex = new Regex(@"", RegexOptions.IgnoreCase) + let matches = regex.Matches(urlContent) |> Seq.map (fun x -> x.Value) + matches + + let downloadWebPageContent (client: IHttpClient, url: string) : Async> = + async { + try + let! response = client.GetStringAsync(url) |> Async.AwaitTask + return Some response + with :? HttpRequestException -> + printfn "Error downloading URL: %s" url + return None + } + + let printDownloadingResult (results: seq) = + for result in results do + printfn "%s %d" <| "url: " + fst result + "\nAmount of symbols:" <| snd result + + let downloadPagesFrom (client: IHttpClient, url: string) = + async { + let! urlContent = downloadWebPageContent (client, url) + + match urlContent with + | None -> return None + | Some content -> + let downloadingTasks = + getHtmlLinks content + |> Seq.map (fun link -> + async { + let! pageContent = downloadWebPageContent (client, link) + return link, pageContent + }) + |> Async.Parallel + + let! results = downloadingTasks + + let unwrappedResults = + results + |> Seq.filter (fun (x: string * Option) -> (snd x).IsSome) + |> Seq.map (fun (x: string * Option) -> fst x, (snd x).Value.Length) + + printDownloadingResult unwrappedResults + return Some unwrappedResults + } diff --git "a/\320\241rawler/\320\241rawler.fsproj" "b/\320\241rawler/\320\241rawler.fsproj" new file mode 100644 index 0000000..2456c31 --- /dev/null +++ "b/\320\241rawler/\320\241rawler.fsproj" @@ -0,0 +1,17 @@ + + + + net7.0 + true + + + + + + + + + + + + diff --git "a/\320\241rawler/\320\241rawler.sln" "b/\320\241rawler/\320\241rawler.sln" new file mode 100644 index 0000000..645a6cb --- /dev/null +++ "b/\320\241rawler/\320\241rawler.sln" @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 25.0.1706.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Сrawler", "Сrawler.fsproj", "{717B2B20-5773-42D6-8147-13E282A5B12E}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Crawler.Tests", "..\Crawler.Tests\Crawler.Tests.fsproj", "{4CC97B9B-17D8-4FB7-803F-084778FE0AA9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {717B2B20-5773-42D6-8147-13E282A5B12E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {717B2B20-5773-42D6-8147-13E282A5B12E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {717B2B20-5773-42D6-8147-13E282A5B12E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {717B2B20-5773-42D6-8147-13E282A5B12E}.Release|Any CPU.Build.0 = Release|Any CPU + {4CC97B9B-17D8-4FB7-803F-084778FE0AA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CC97B9B-17D8-4FB7-803F-084778FE0AA9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CC97B9B-17D8-4FB7-803F-084778FE0AA9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CC97B9B-17D8-4FB7-803F-084778FE0AA9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DE5DC773-1FC1-4FE5-A564-749994168AEB} + EndGlobalSection +EndGlobal From 41f7bb0193ef3c51121dd7682718dd4c6d0135c1 Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Mon, 25 Nov 2024 10:22:22 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=D0=B0?= =?UTF-8?q?=20=D1=81=D0=BB=D1=83=D1=87=D0=B0=D0=B9=D0=BD=D0=BE=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grammar.pdf | Bin 87587 -> 0 bytes grammar.tex | 108 ---------------------------------------------------- 2 files changed, 108 deletions(-) delete mode 100644 grammar.pdf delete mode 100644 grammar.tex diff --git a/grammar.pdf b/grammar.pdf deleted file mode 100644 index 2d19368832462794e49c1f924e3d17aa48c9bf4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87587 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 z 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 R+_)iNIJcCPfw>{~e*rPZUv~fi diff --git a/grammar.tex b/grammar.tex deleted file mode 100644 index 8b90e7c..0000000 --- a/grammar.tex +++ /dev/null @@ -1,108 +0,0 @@ -\documentclass[12pt]{article} -\title{Definition Homework} -\usepackage {amsmath} -\usepackage {amssymb} -\usepackage{enumerate} -\usepackage{cmap} -\usepackage{mathtext} -\usepackage[T2A]{fontenc} -\usepackage[utf8]{inputenc} -\usepackage[english,russian]{babel} -\usepackage{indentfirst} - -\setlength{\textwidth}{7.0in} -\setlength{\oddsidemargin}{-0.35in} -\setlength{\topmargin}{-0.5in} -\setlength{\textheight}{9.0in} -\setlength{\parindent}{0.3in} -\usepackage{alltt} -\begin{document} -\indent -\section{Определение грамматики} -\begin{enumerate} - \item $\Sigma = \{[a-zA-Z],.,\backslash, let, =, (, ),\backslash n\}$ - \item $N = \{application, definition, defname, term, lambda-abstraction, variable, input\}$ - \item $S = input$ - \item $P:$ - \begin{enumerate} [1)] - \item $ ::= let = $. - \item $ ::= A | B | ... | Z$. - \item $ ::= | () | | | <~defname>$ - \item $ ::= a | b | ... | z$ - \item $ = \backslash\{\}.$ - \item $ = $ - \item $ = \{ \backslash n\} $. - \end{enumerate} -\end{enumerate} -\section{Пример} - \begin{verbatim} - let S = \ x y z.x z (y z) - let K = \ x y.x - S K K - \end{verbatim} - $$ \Rightarrow \backslash n \{ \backslash n\} \Rightarrow$$ - Первое $definition$: - \begin{eqnarray} - \Rightarrow \\ - let = \Rightarrow \\ - let\ S = \Rightarrow \\ - let \ S = \Rightarrow \\ - let \ S = \backslash\{\}. \Rightarrow \\ - let \ S = \backslash. \Rightarrow \\ - let \ S = \backslash x . \Rightarrow \\ - let \ S = \backslash x y . \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z. \Rightarrow \\ - let \ S = \backslash x y z.x \Rightarrow \\ - let \ S = \backslash x y z.x \Rightarrow \\ - let \ S = \backslash x y z.x z \Rightarrow \\ - let \ S = \backslash x y z.x z () \Rightarrow \\ - let \ S = \backslash x y z.x z () \Rightarrow \\ - let \ S = \backslash x y z.x z ( ) \Rightarrow \\ - let \ S = \backslash x y z.x z ( ) \Rightarrow \\ - let \ S = \backslash x y z.x z (y ) \Rightarrow \\ - let \ S = \backslash x y z.x z (y z) \Rightarrow - \end{eqnarray} - Итог: - \begin{verbatim} - let S = \ x y z.x z (y z) - \end{verbatim} - Второе $definition$: - \begin{eqnarray} - \Rightarrow \\ - let = \Rightarrow \\ - let \ K = \Rightarrow \\ - let \ K = \Rightarrow \\ - let \ K = \backslash\{\}. \Rightarrow \\ - let \ K = \backslash. \Rightarrow \\ - let \ K = \backslash x . \Rightarrow \\ - let \ K = \backslash x y. \Rightarrow \\ - let \ K = \backslash x y z. \Rightarrow \\ - let \ K = \backslash x y z.x \Rightarrow - \end{eqnarray} - Итог: - \begin{verbatim} - let S = \ x y z.x z (y z) - let K = \ x y.x - \end{verbatim} - $term$: - \begin{eqnarray} - \Rightarrow \\ - \Rightarrow \\ - \Rightarrow \\ - \Rightarrow \\ - \Rightarrow \\ - \Rightarrow \\ - S K K \Rightarrow - \end{eqnarray} - Итог: - \begin{verbatim} - let S = \ x y z.x z (y z) - let K = \ x y.x - S K K - \end{verbatim} -\end{document} \ No newline at end of file From cd619dcc691e686f48fe17a1224fdec83db86032 Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Wed, 27 Nov 2024 05:11:06 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20Lazy=20=D0=B8=20fsproj=20Crawler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Crawler.Tests/Crawler.Tests.fsproj | 3 +- Crawler.Tests/Program.fs | 4 --- Lazy.Tests/Lazy.Tests.fsproj | 3 +- Lazy.Tests/LazyTests.fs | 50 ++++++++++++++++-------------- Lazy.Tests/Program.fs | 4 --- Lazy/Lazy.fs | 17 ++++++---- 6 files changed, 39 insertions(+), 42 deletions(-) delete mode 100644 Crawler.Tests/Program.fs delete mode 100644 Lazy.Tests/Program.fs diff --git a/Crawler.Tests/Crawler.Tests.fsproj b/Crawler.Tests/Crawler.Tests.fsproj index fd28aa9..1108118 100644 --- a/Crawler.Tests/Crawler.Tests.fsproj +++ b/Crawler.Tests/Crawler.Tests.fsproj @@ -4,13 +4,12 @@ net7.0 false - false + true true - diff --git a/Crawler.Tests/Program.fs b/Crawler.Tests/Program.fs deleted file mode 100644 index 5fa22d1..0000000 --- a/Crawler.Tests/Program.fs +++ /dev/null @@ -1,4 +0,0 @@ -module Program = - - [] - let main _ = 0 diff --git a/Lazy.Tests/Lazy.Tests.fsproj b/Lazy.Tests/Lazy.Tests.fsproj index 7ad20b5..179fc3e 100644 --- a/Lazy.Tests/Lazy.Tests.fsproj +++ b/Lazy.Tests/Lazy.Tests.fsproj @@ -4,13 +4,12 @@ net7.0 false - false + true true - diff --git a/Lazy.Tests/LazyTests.fs b/Lazy.Tests/LazyTests.fs index f29a784..6b38119 100644 --- a/Lazy.Tests/LazyTests.fs +++ b/Lazy.Tests/LazyTests.fs @@ -2,6 +2,7 @@ open NUnit.Framework open FsCheck +open FsUnit open System.Threading open Lazy @@ -14,7 +15,7 @@ let ``Consistent Lazy returns same calculation result`` () = let thrdResult = newLazy.Get() fstResult = sndResult && sndResult = thrdResult - Check.Quick consistentLazyChecker + Check.QuickThrowOnFailure consistentLazyChecker let lazies = [ (fun supplier -> LockLazy(supplier) :> ILazy) @@ -23,26 +24,27 @@ let lazies = [] let ``Lock and free lock Lazies execute supplier one time`` (newILazy: (unit -> int) -> ILazy) = - - let multiThreadLazyChecker (supplier: unit -> int) = - let event = new ManualResetEvent(false) - let multiThreadLazy = newILazy supplier - - let task = - async { - event.WaitOne() |> ignore - return multiThreadLazy.Get() - } - - let taskSeq = Seq.init 10 (fun _ -> task) |> Async.Parallel - Thread.Sleep(100) - event.Set() |> ignore - let results = taskSeq |> Async.RunSynchronously - let mutable isEqual = true - - for result in results do - isEqual <- (result = results.[0]) && isEqual - - isEqual - - Check.Quick multiThreadLazyChecker + let event = new ManualResetEvent(false) + let mutable count = 0 + + let multiThreadLazy = + newILazy (fun () -> + count <- count + 1 + count) + + let task = + async { + event.WaitOne() |> ignore + return multiThreadLazy.Get() + } + + let taskSeq = Seq.init 10 (fun _ -> task) |> Async.Parallel + Thread.Sleep(100) + event.Set() |> ignore + let results = taskSeq |> Async.RunSynchronously + let mutable isEqual = true + + for result in results do + isEqual <- (result = results.[0]) && isEqual + + isEqual |> should be True diff --git a/Lazy.Tests/Program.fs b/Lazy.Tests/Program.fs deleted file mode 100644 index 5fa22d1..0000000 --- a/Lazy.Tests/Program.fs +++ /dev/null @@ -1,4 +0,0 @@ -module Program = - - [] - let main _ = 0 diff --git a/Lazy/Lazy.fs b/Lazy/Lazy.fs index 14c0429..9e6cf35 100644 --- a/Lazy/Lazy.fs +++ b/Lazy/Lazy.fs @@ -3,13 +3,18 @@ open System.Threading module Lazy = + /// Interface of Lazy. type ILazy<'a> = + /// Returns new calculation of supplier value on first call. + /// Result of supplier. abstract member Get: unit -> 'a + /// Represents Lazy working with one thread. type СonsistentLazy<'a>(supplier: unit -> 'a) = let mutable value: Option<'a> = None interface ILazy<'a> with + /// member this.Get() = match value with | None -> @@ -17,27 +22,27 @@ module Lazy = value.Value | Some x -> x + /// Represents Lazy working with multithreads using lock. type LockLazy<'a>(supplier: unit -> 'a) = let mutable value: Option<'a> = None let lockObj = obj () interface ILazy<'a> with + /// member this.Get() = - Monitor.Enter(lockObj) - - try + lock (lockObj) (fun () -> match value with | None -> value <- Some(supplier ()) value.Value - | Some x -> x - finally - Monitor.Exit(lockObj) + | Some x -> x) + /// Represents Lazy working with multithreads using lock free. type FreeLockLazy<'a>(supplier: unit -> 'a) = let mutable value: Option<'a> = None interface ILazy<'a> with + /// member this.Get() = match Interlocked.CompareExchange(&value, Some(supplier ()), None) with | Some x -> x From e6883f9dc8a5b2b1d702966f1c17faa21627934b Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Wed, 27 Nov 2024 05:14:09 +0300 Subject: [PATCH 5/6] FreeLock -> LockFree --- Lazy.Tests/LazyTests.fs | 2 +- Lazy/Lazy.fs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Lazy.Tests/LazyTests.fs b/Lazy.Tests/LazyTests.fs index 6b38119..00af7e8 100644 --- a/Lazy.Tests/LazyTests.fs +++ b/Lazy.Tests/LazyTests.fs @@ -19,7 +19,7 @@ let ``Consistent Lazy returns same calculation result`` () = let lazies = [ (fun supplier -> LockLazy(supplier) :> ILazy) - (fun supplier -> FreeLockLazy(supplier) :> ILazy) ] + (fun supplier -> LockFreeLazy(supplier) :> ILazy) ] |> List.map (fun x -> TestCaseData(x)) [] diff --git a/Lazy/Lazy.fs b/Lazy/Lazy.fs index 9e6cf35..58f7c24 100644 --- a/Lazy/Lazy.fs +++ b/Lazy/Lazy.fs @@ -38,7 +38,7 @@ module Lazy = | Some x -> x) /// Represents Lazy working with multithreads using lock free. - type FreeLockLazy<'a>(supplier: unit -> 'a) = + type LockFreeLazy<'a>(supplier: unit -> 'a) = let mutable value: Option<'a> = None interface ILazy<'a> with From 6610061e7cd6cb74676d596cec101310472e08fc Mon Sep 17 00:00:00 2001 From: Ksenia Nigmatulina Date: Thu, 28 Nov 2024 17:29:44 +0300 Subject: [PATCH 6/6] Interlocked, g --- Lazy.Tests/LazyTests.fs | 5 ++--- Lazy/Lazy.fs | 14 ++++++++------ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Lazy.Tests/LazyTests.fs b/Lazy.Tests/LazyTests.fs index 00af7e8..e109e64 100644 --- a/Lazy.Tests/LazyTests.fs +++ b/Lazy.Tests/LazyTests.fs @@ -25,12 +25,11 @@ let lazies = [] let ``Lock and free lock Lazies execute supplier one time`` (newILazy: (unit -> int) -> ILazy) = let event = new ManualResetEvent(false) - let mutable count = 0 + let mutable count = ref 0 let multiThreadLazy = newILazy (fun () -> - count <- count + 1 - count) + Interlocked.Increment count) let task = async { diff --git a/Lazy/Lazy.fs b/Lazy/Lazy.fs index 58f7c24..be2613b 100644 --- a/Lazy/Lazy.fs +++ b/Lazy/Lazy.fs @@ -30,12 +30,14 @@ module Lazy = interface ILazy<'a> with /// member this.Get() = - lock (lockObj) (fun () -> - match value with - | None -> - value <- Some(supplier ()) - value.Value - | Some x -> x) + if value.IsNone then + lock (lockObj) (fun () -> + match value with + | None -> + value <- Some(supplier ()) + value.Value + | Some x -> x) + else value.Value /// Represents Lazy working with multithreads using lock free. type LockFreeLazy<'a>(supplier: unit -> 'a) =